bind9/tests
Ondřej Surý cd348cf255
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.

(cherry picked from commit a5f13b3410)
2026-06-17 21:15:17 +02:00
..
bench Enforce NSEC3 record consistency 2026-02-24 17:10:52 +01:00
dns Enforce strict RSA DNSKEY shape during DNSSEC validation 2026-06-08 20:54:22 +02:00
include/tests ISC_RUN_TEST_IMPL should use a static declaration 2026-01-29 00:26:35 +11:00
isc Replace the shared work pool with per-loop, per-lane worker threads 2026-06-17 21:15:17 +02:00
isccfg Add none parameter to query-source and query-source-v6 to disable IPv4 or IPv6 upstream queries 2024-12-10 11:58:20 +01:00
libtest Rename 'free' variable to 'nfree' to not clash with free() 2025-07-22 14:28:15 +02:00
ns wrap ns_client_error() for unit testing 2025-02-26 00:55:51 +00:00
.gitignore Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
Makefile.am Move resconf_test.c to tests/dns and cleanup 2024-12-12 22:50:22 +00:00
unit-test-driver.sh.in Reformat shell scripts with shfmt 2023-10-26 10:23:50 +02:00