diff --git a/lib/ns/client.c b/lib/ns/client.c index 7fa7386bba..5a9bfd85c5 100644 --- a/lib/ns/client.c +++ b/lib/ns/client.c @@ -2406,13 +2406,8 @@ clientmgr_destroy(ns_clientmgr_t *manager) { dns_aclenv_detach(&manager->aclenv); - isc_mutex_destroy(&manager->lock); isc_mutex_destroy(&manager->reclock); - if (manager->excl != NULL) { - isc_task_detach(&manager->excl); - } - isc_task_detach(&manager->task); ns_server_detach(&manager->sctx); @@ -2433,13 +2428,6 @@ ns_clientmgr_create(ns_server_t *sctx, isc_taskmgr_t *taskmgr, manager = isc_mem_get(mctx, sizeof(*manager)); *manager = (ns_clientmgr_t){ .magic = 0, .mctx = mctx }; - result = isc_taskmgr_excltask(taskmgr, &manager->excl); - if (result != ISC_R_SUCCESS) { - isc_mem_put(mctx, manager, sizeof(*manager)); - return (result); - } - - isc_mutex_init(&manager->lock); isc_mutex_init(&manager->reclock); manager->taskmgr = taskmgr; @@ -2448,7 +2436,6 @@ ns_clientmgr_create(ns_server_t *sctx, isc_taskmgr_t *taskmgr, dns_aclenv_attach(aclenv, &manager->aclenv); - manager->exiting = false; result = isc_task_create_bound(manager->taskmgr, 20, &manager->task, manager->tid); RUNTIME_CHECK(result == ISC_R_SUCCESS); @@ -2471,33 +2458,16 @@ ns_clientmgr_create(ns_server_t *sctx, isc_taskmgr_t *taskmgr, void ns_clientmgr_destroy(ns_clientmgr_t **managerp) { - isc_result_t result; ns_clientmgr_t *manager; - bool unlock = false; REQUIRE(managerp != NULL); + REQUIRE(VALID_MANAGER(*managerp)); + manager = *managerp; *managerp = NULL; - REQUIRE(VALID_MANAGER(manager)); MTRACE("destroy"); - /* - * Check for success because we may already be task-exclusive - * at this point. Only if we succeed at obtaining an exclusive - * lock now will we need to relinquish it later. - */ - result = isc_task_beginexclusive(manager->excl); - if (result == ISC_R_SUCCESS) { - unlock = true; - } - - manager->exiting = true; - - if (unlock) { - isc_task_endexclusive(manager->excl); - } - if (isc_refcount_decrement(&manager->references) == 1) { clientmgr_destroy(manager); } diff --git a/lib/ns/include/ns/client.h b/lib/ns/include/ns/client.h index e26f14ff9d..71c223847b 100644 --- a/lib/ns/include/ns/client.h +++ b/lib/ns/include/ns/client.h @@ -147,7 +147,6 @@ struct ns_clientmgr { ns_server_t *sctx; isc_taskmgr_t *taskmgr; isc_timermgr_t *timermgr; - isc_task_t *excl; isc_refcount_t references; int tid; @@ -156,10 +155,6 @@ struct ns_clientmgr { dns_aclenv_t *aclenv; - /* Lock covers manager state. */ - isc_mutex_t lock; - bool exiting; - /* Lock covers the recursing list */ isc_mutex_t reclock; client_list_t recursing; /*%< Recursing clients */