#include <poll.h>
#include <regex.h>
-#include <urcu.h>
+#include <urcu-bp.h>
#include "marker.h"
#include "tracer.h"
}
}
-int have_listener = 0;
+volatile sig_atomic_t have_listener = 0;
void create_listener(void)
{
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);
}
ustcomm_fini_app(&ustcomm_app);
}
-void ust_potential_exec(void)
+noinline void ust_potential_exec(void)
{
trace_mark(ust, potential_exec, MARK_NOARGS);
* 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;