fix: dev: Call isc__iterated_hash_initialize in isc__work_cb

isc_iterated_hash didn't work in offloaded threads as the per thread
initialisation has not been done.  This has been fixed.

Closes #5214

Merge branch '5214-call-isc__iterated_hash_initialize-in-isc__work_cb' into 'main'

See merge request isc-projects/bind9!10206
This commit is contained in:
Mark Andrews
2025-03-04 13:33:43 +00:00

View File

@@ -13,6 +13,7 @@
#include <stdlib.h>
#include <isc/iterated_hash.h>
#include <isc/job.h>
#include <isc/loop.h>
#include <isc/urcu.h>
@@ -25,11 +26,15 @@ static void
isc__work_cb(uv_work_t *req) {
isc_work_t *work = uv_req_get_data((uv_req_t *)req);
isc__iterated_hash_initialize();
rcu_register_thread();
work->work_cb(work->cbarg);
rcu_unregister_thread();
isc__iterated_hash_shutdown();
}
static void