mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-10 21:29:59 -04:00
Remove task exclusive mode from ns_clientmgr
The .lock, .exiting and .excl members were not using for anything else
than starting task exclusive mode, setting .exiting to true and ending
exclusive mode.
Remove all the stray members and dead code eliminating the task
exclusive mode use from ns_clientmgr.
(cherry picked from commit 4f74e1010e)
This commit is contained in:
parent
bc36f3e723
commit
8beaee0b08
2 changed files with 2 additions and 37 deletions
|
|
@ -2437,13 +2437,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);
|
||||
|
||||
|
|
@ -2464,13 +2459,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;
|
||||
|
|
@ -2479,7 +2467,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);
|
||||
|
|
@ -2502,33 +2489,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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Reference in a new issue