From: Art Cancro Date: Sat, 6 Mar 2021 20:06:46 +0000 (-0500) Subject: Simplified disable_housekeeping X-Git-Tag: v939~90 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;ds=sidebyside;h=b223424749db67c28961787ce6ae841387f4de46;p=citadel.git Simplified disable_housekeeping --- diff --git a/citadel/housekeeping.c b/citadel/housekeeping.c index 0ca383202..4de8e4baf 100644 --- a/citadel/housekeeping.c +++ b/citadel/housekeeping.c @@ -92,12 +92,18 @@ void keep_an_eye_on_memory_usage(void) { * instance to run at a time. */ static int housekeeping_in_progress = 0; +static int housekeeping_disabled = 0; static time_t last_timer = 0L; + void do_housekeeping(void) { int do_housekeeping_now = 0; int do_perminute_housekeeping_now = 0; time_t now; + if (housekeeping_disabled) { + return; + } + /* * We do it this way instead of wrapping the whole loop in an * S_HOUSEKEEPING critical section because it eliminates the need to @@ -161,52 +167,21 @@ void do_housekeeping(void) { void CtdlDisableHouseKeeping(void) { - int ActiveBackgroundJobs; - int do_housekeeping_now = 0; - struct CitContext *nptr; - int nContexts, i; - -retry_block_housekeeping: - syslog(LOG_INFO, "housekeeping: trying to disable services"); - begin_critical_section(S_HOUSEKEEPING); - if (housekeeping_in_progress == 0) { - do_housekeeping_now = 1; - housekeeping_in_progress = 1; - } - end_critical_section(S_HOUSEKEEPING); - if (do_housekeeping_now == 0) { - usleep(1000000); - goto retry_block_housekeeping; - } - - syslog(LOG_INFO, "housekeeping: checking for running server jobs"); + syslog(LOG_INFO, "housekeeping: trying to disable"); + while ( (!housekeeping_disabled) && (!server_shutting_down) && (!housekeeping_in_progress) ) { -retry_wait_for_contexts: - /* So that we don't keep the context list locked for a long time - * we create a copy of it first - */ - ActiveBackgroundJobs = 0; - nptr = CtdlGetContextArray(&nContexts) ; - if (nptr) - { - for (i=0; i