/*
* 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();
}
/*
* Initialize the thread system
*/
-void go_threading(void)
-{
+void go_threading(void) {
pthread_mutex_init(&ThreadCountMutex, NULL);
/* Second call to module init functions now that threading is up */
CtdlShutdownServiceHooks(); /* close all listener sockets to prevent new connections */
PerformSessionHooks(EVT_SHUTDOWN); /* run any registered shutdown hooks */
- int countdown = 30;
- while ( (num_workers > 0) && (countdown-- > 0)) {
- syslog(LOG_DEBUG, "Waiting %d seconds for %d worker threads to exit",
- countdown, num_workers
- );
- usleep(1000000);
- }
+ /* 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.
+ */
}