mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Log when starting and ending task exclusive mode
The task exclusive mode stops all processing (tasks and networking IO)
except the designated exclusive task events. This has impact on the
operation of the server. Add log messages indicating when we start the
exclusive mode, and when we end exclusive task mode.
(cherry picked from commit b9cb29076f)
This commit is contained in:
parent
5d7a6c0bf8
commit
1591d78559
1 changed files with 26 additions and 0 deletions
|
|
@ -25,6 +25,7 @@
|
|||
#include <isc/atomic.h>
|
||||
#include <isc/condition.h>
|
||||
#include <isc/event.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/once.h>
|
||||
|
|
@ -1107,8 +1108,20 @@ isc_task_beginexclusive(isc_task_t *task) {
|
|||
return (ISC_R_LOCKBUSY);
|
||||
}
|
||||
|
||||
if (isc_log_wouldlog(isc_lctx, ISC_LOG_DEBUG(1))) {
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_OTHER, ISC_LOG_DEBUG(1),
|
||||
"exclusive task mode: %s", "starting");
|
||||
}
|
||||
|
||||
isc_nm_pause(manager->netmgr);
|
||||
|
||||
if (isc_log_wouldlog(isc_lctx, ISC_LOG_DEBUG(1))) {
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_OTHER, ISC_LOG_DEBUG(1),
|
||||
"exclusive task mode: %s", "started");
|
||||
}
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
|
|
@ -1120,7 +1133,20 @@ isc_task_endexclusive(isc_task_t *task) {
|
|||
REQUIRE(task->state == task_state_running);
|
||||
manager = task->manager;
|
||||
|
||||
if (isc_log_wouldlog(isc_lctx, ISC_LOG_DEBUG(1))) {
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_OTHER, ISC_LOG_DEBUG(1),
|
||||
"exclusive task mode: %s", "ending");
|
||||
}
|
||||
|
||||
isc_nm_resume(manager->netmgr);
|
||||
|
||||
if (isc_log_wouldlog(isc_lctx, ISC_LOG_DEBUG(1))) {
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_OTHER, ISC_LOG_DEBUG(1),
|
||||
"exclusive task mode: %s", "ended");
|
||||
}
|
||||
|
||||
REQUIRE(atomic_compare_exchange_strong(&manager->exclusive_req,
|
||||
&(bool){ true }, false));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue