bind9/bin/dig
Ondřej Surý a5f13b3410 Replace the shared work pool with per-loop, per-lane worker threads
Offloaded work used two different mechanisms: a per-loop isc_helper
thread for CPU-bound crypto (DNSSEC validation, message signature
checks) and the process-global libuv thread pool for blocking I/O (zone
load and dump, inbound transfer apply). Neither could cancel a queued
task, and the two disagreed about exclusive mode — the helper paused
with its loop under isc_loopmgr_pause() but the libuv pool did not, so
blocking offloaded work kept running while a loop held the exclusive
lock.

Unify both behind isc_work: each loop gets its own worker thread per
lane — FAST for short, bounded tasks and SLOW for long, blocking ones —
fed by a private queue. Separate lanes keep a short crypto task off the
path of a multi-second zone dump once both run on per-loop workers;
every lane parks with isc_loopmgr_pause() so exclusive mode now quiesces
offloaded work too; and a still-queued task can be canceled before it
starts (isc_work_cancel). isc_helper is removed and its callers select a
lane.
2026-06-17 19:07:08 +02:00
..
.gitignore [master] update gitignore files; use rev-parse to get srcid 2014-06-17 13:49:30 -07:00
dig.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
dig.rst Add examples to the dig man page 2026-02-22 11:03:10 -05:00
dighost.c Bound EDNS option length in dig's process_opt() walk 2026-05-01 07:19:49 +02:00
dighost.h Add +[no]showtruncated to dig 2025-12-02 09:34:13 +11:00
host.c switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
host.rst Do HTTPS record query from host in addition 2025-02-18 14:56:08 +00:00
meson.build replace the build system with meson 2025-06-11 10:30:12 +03:00
nslookup.c Replace the shared work pool with per-loop, per-lane worker threads 2026-06-17 19:07:08 +02:00
nslookup.rst Add internal hyperlinks to See Also section of manual pages 2022-03-14 10:46:36 +01:00