getmx() now uses our array class
[citadel.git] / citadel / threads.c
index ab7157bd83a5a3cc1738a4debab3c5c5951d68b5..aec41a7c4d92b57292f6fc99e04a5ada5b025626 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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.
@@ -53,7 +53,7 @@ int try_critical_section(int which_one)
         * transaction; this could lead to deadlock.
         */
        if (    (which_one != S_FLOORCACHE)
-               && (which_one != S_RPLIST)
+               && (which_one != S_NETCONFIGS)
        ) {
                cdb_check_handles();
        }
@@ -71,7 +71,7 @@ void begin_critical_section(int which_one)
         * transaction; this could lead to deadlock.
         */
        if (    (which_one != S_FLOORCACHE)
-               && (which_one != S_RPLIST)
+               && (which_one != S_NETCONFIGS)
        ) {
                cdb_check_handles();
        }
@@ -169,6 +169,10 @@ void go_threading(void)
        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",
@@ -176,4 +180,6 @@ void go_threading(void)
                );
                usleep(1000000);
        }
+#endif
+
 }