/*
* Thread handling stuff for Citadel server
*
- * Copyright (c) 1987-2019 by the citadel.org team
+ * Copyright (c) 1987-2021 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 3.
* transaction; this could lead to deadlock.
*/
if ( (which_one != S_FLOORCACHE)
- && (which_one != S_RPLIST)
+ && (which_one != S_NETCONFIGS)
) {
cdb_check_handles();
}
* transaction; this could lead to deadlock.
*/
if ( (which_one != S_FLOORCACHE)
- && (which_one != S_RPLIST)
+ && (which_one != S_NETCONFIGS)
) {
cdb_check_handles();
}
void InitializeMasterTSD(void) {
- TRACE;
memset(&masterTSD, 0, sizeof(struct thread_tsd));
}
CtdlShutdownServiceHooks(); /* close all listener sockets to prevent new connections */
PerformSessionHooks(EVT_SHUTDOWN); /* run any registered shutdown hooks */
+ /* We used to wait for all threads to exit. Fuck that. The only thing important is that the databases are
+ * cleanly unmounted. After that, exit the whole program.
+ */
+#if 0
int countdown = 30;
while ( (num_workers > 0) && (countdown-- > 0)) {
syslog(LOG_DEBUG, "Waiting %d seconds for %d worker threads to exit",
);
usleep(1000000);
}
+#endif
+
}