+ usleep(1000000);
+ }
+
+ /* When we get to this point we are getting ready to shut down our Citadel server */
+ terminate_all_sessions(); /* close all client sockets */
+ 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",
+ countdown, num_workers
+ );
+ usleep(1000000);