src/server/daemon/event.c

changeset 555
66b0accda0a8
parent 552
4ed0e46aa9dc
child 556
b036ccad4b49
--- a/src/server/daemon/event.c	Sat Aug 24 12:13:01 2024 +0200
+++ b/src/server/daemon/event.c	Sat Aug 24 18:34:13 2024 +0200
@@ -32,7 +32,7 @@
 
 #include "event.h"
 
-CxMap *event_handler_map = NULL;
+static CxMap *event_handler_map = NULL;
 int numevhandlers = 0;
 
 EVHandler *default_event_handler = NULL;
@@ -78,6 +78,20 @@
     return ret;
 }
 
+void shutdown_eventhandlers_wait(void) {
+    CxIterator i = cxMapIteratorValues(event_handler_map);
+    cx_foreach(EVHandler *, e, i) {
+        evhandler_shutdown(e);
+    }
+    
+    i = cxMapIteratorValues(event_handler_map);
+    cx_foreach(EVHandler *, e, i) {
+        evhandler_wait_and_destroy(e);
+    }
+    
+    cxMapDestroy(event_handler_map);
+}
+
 void evhandler_shutdown(EVHandler *h) {
     for(int i=0;i<h->numins;i++) {
         ev_instance_shutdown(h->instances[i]);

mercurial