fork: don't switch buffer when destroying trace in child
[ust.git] / libust / tracectl.c
index d517fe042ad706e9ade94f9d7620f3f310bf85b5..c72d013d7535a5539960e4d111ad24b39bcc6e54 100644 (file)
@@ -509,7 +509,7 @@ static int do_cmd_get_subbuf_size(const char *recvbuf, struct ustcomm_source *sr
        return retval;
 }
 
-unsigned int poweroftwo(unsigned int x)
+static unsigned int poweroftwo(unsigned int x)
 {
     unsigned int power2 = 1;
     unsigned int hardcoded = 2147483648; /* FIX max 2^31 */
@@ -964,7 +964,7 @@ void *listener_main(void *p)
 
                        DBG("trace destroy");
 
-                       result = ltt_trace_destroy(trace_name);
+                       result = ltt_trace_destroy(trace_name, 0);
                        if(result < 0) {
                                ERR("ltt_trace_destroy failed");
                                return (void *)1;
@@ -1348,7 +1348,7 @@ static void destroy_traces(void)
                ERR("ltt_trace_stop error");
        }
 
-       result = ltt_trace_destroy("auto");
+       result = ltt_trace_destroy("auto", 0);
        if(result == -1) {
                ERR("ltt_trace_destroy error");
        }
@@ -1453,9 +1453,10 @@ static void ust_fork(void)
        struct blocked_consumer *deletable_bc = NULL;
        int result;
 
+       /* FIXME: technically, the locks could have been taken before the fork */
        DBG("ust: forking");
        ltt_trace_stop("auto");
-       ltt_trace_destroy("auto");
+       ltt_trace_destroy("auto", 1);
        /* Delete all active connections */
        ustcomm_close_all_connections(&ustcomm_app.server);
 
This page took 0.023623 seconds and 4 git commands to generate.