update build system to find automatically installed kcompat and urcu
[ust.git] / libust / tracectl.c
index 17d28dca61394f744077fea45f5fea1bf5d17e43..f9d035dd84277b56df856430d7c6cab1482e0c76 100644 (file)
@@ -27,7 +27,7 @@
 #include <poll.h>
 #include <regex.h>
 
-#include <urcu.h>
+#include <urcu-bp.h>
 
 #include "marker.h"
 #include "tracer.h"
@@ -772,7 +772,7 @@ void *listener_main(void *p)
        }
 }
 
-int have_listener = 0;
+volatile sig_atomic_t have_listener = 0;
 
 void create_listener(void)
 {
@@ -1006,13 +1006,15 @@ static void __attribute__((constructor(1000))) init()
                        return;
                }
 
-               inform_consumer_daemon(trace_name);
-
                result = ltt_trace_start(trace_name);
                if(result < 0) {
                        ERR("ltt_trace_start failed");
                        return;
                }
+
+               /* Do this after the trace is started in order to avoid creating confusion
+                * if the trace fails to start. */
+               inform_consumer_daemon(trace_name);
        }
 
 
@@ -1126,7 +1128,7 @@ static void __attribute__((destructor)) keepalive()
        ustcomm_fini_app(&ustcomm_app);
 }
 
-void ust_potential_exec(void)
+noinline void ust_potential_exec(void)
 {
        trace_mark(ust, potential_exec, MARK_NOARGS);
 
@@ -1139,7 +1141,7 @@ void ust_potential_exec(void)
  * of the new process will not be collected.
  */
 
-void ust_fork(void)
+noinline void ust_fork(void)
 {
        struct blocked_consumer *bc;
        struct blocked_consumer *deletable_bc = NULL;
This page took 0.023959 seconds and 4 git commands to generate.