+ end_critical_section(S_HOUSEKEEPING);
+}
+
+
+void CtdlDisableHouseKeeping(void) {
+ syslog(LOG_INFO, "housekeeping: trying to disable");
+ while ( (!housekeeping_disabled) && (!server_shutting_down) && (!housekeeping_in_progress) ) {
+
+ if (housekeeping_in_progress) {
+ sleep(1);
+ }
+ else {
+ begin_critical_section(S_HOUSEKEEPING);
+ if (!housekeeping_in_progress) {
+ housekeeping_disabled = 1;
+ }
+ end_critical_section(S_HOUSEKEEPING);
+ }
+ }
+ syslog(LOG_INFO, "housekeeping: disabled now");
+}
+
+
+void CtdlEnableHouseKeeping(void) {
+ begin_critical_section(S_HOUSEKEEPING);
+ housekeeping_in_progress = 0;
+ end_critical_section(S_HOUSEKEEPING);