EVENT-Backtrace enableable on its own by now.
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 29 Apr 2012 10:13:00 +0000 (12:13 +0200)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 29 Apr 2012 10:13:00 +0000 (12:13 +0200)
citadel/event_client.c
citadel/modules/eventclient/serv_eventclient.c

index 927e18bd0d75a440807219a587dbc47653400737..697fd7bcd87a0e171e54fd24090a11b82e2a9a5d 100644 (file)
@@ -976,6 +976,7 @@ int InitcURLIOStruct(AsyncIO *IO,
 
 }
 
+extern int DebugEventLoopBacktrace;
 void EV_backtrace(AsyncIO *IO)
 {
 #ifdef HAVE_BACKTRACE
@@ -983,7 +984,7 @@ void EV_backtrace(AsyncIO *IO)
        size_t size, i;
        char **strings;
 
-       if (IO == NULL)
+       if ((IO == NULL) || (DebugEventLoopBacktrace == 0))
                return;
        size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
        strings = backtrace_symbols(stack_frames, size);
index 39bb108a7af1dce3e03fc2ef65f8fe39e1a5eb70..a079d123206d2f24f179d130a2973fb74822cc5b 100644 (file)
@@ -61,6 +61,7 @@
 
 ev_loop *event_base;
 int DebugEventLoop = 0;
+int DebugEventLoopBacktrace = 0;
 int DebugCurl = 0;
 
 long EvIDSource = 1;
@@ -844,6 +845,10 @@ void DebugEventloopEnable(void)
 {
        DebugEventLoop = 1;
 }
+void DebugEventloopBacktraceEnable(void)
+{
+       DebugEventLoopBacktrace = 1;
+}
 
 void DebugCurlEnable(void)
 {
@@ -855,6 +860,7 @@ CTDL_MODULE_INIT(event_client)
        if (!threading)
        {
                CtdlRegisterDebugFlagHook(HKEY("eventloop"), DebugEventloopEnable);
+               CtdlRegisterDebugFlagHook(HKEY("eventloopbacktrace"), DebugEventloopBacktraceEnable);
                CtdlRegisterDebugFlagHook(HKEY("curl"), DebugCurlEnable);
                InitEventQueue();
                DBInitEventQueue();