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.
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user