Calls to ctdl_thread_internal_* meed to be inside a critical_section.
authorDave West <davew@uncensored.citadel.org>
Fri, 30 Nov 2007 19:04:16 +0000 (19:04 +0000)
committerDave West <davew@uncensored.citadel.org>
Fri, 30 Nov 2007 19:04:16 +0000 (19:04 +0000)
citadel/server_main.c

index 85cea680b1a67790d6e3236c11336aa8b6554f0b..a18c50266547bde8af55e318bdaf3aee954dde9f 100644 (file)
@@ -350,7 +350,9 @@ int main(int argc, char **argv)
        
        while (CtdlThreadGetCount())
        {
+               begin_critical_section(S_THREAD_LIST);
                ctdl_thread_internal_calc_loadavg();
+               end_critical_section(S_THREAD_LIST);
                CtdlThreadSleep(1);
                ctdl_internal_thread_gc();
                if (CtdlThreadGetCount() <= 1) // Shutting down clean up the garbage collector