improve error handling
[lttng-ust.git] / libust / tracectl.c
index 1dd71621e0e147ba471c97c02366de92171ccfea..17d28dca61394f744077fea45f5fea1bf5d17e43 100644 (file)
@@ -121,7 +121,7 @@ static void print_markers(FILE *fp)
        marker_iter_start(&iter);
 
        while(iter.marker) {
-               fprintf(fp, "marker: %s_%s %d \"%s\"\n", iter.marker->channel, iter.marker->name, (int)imv_read(iter.marker->state), iter.marker->format);
+               fprintf(fp, "marker: %s/%s %d \"%s\"\n", iter.marker->channel, iter.marker->name, (int)imv_read(iter.marker->state), iter.marker->format);
                marker_iter_next(&iter);
        }
        unlock_markers();
@@ -804,12 +804,10 @@ void create_listener(void)
 
 void sighandler(int sig)
 {
-       static char have_listener = 0;
        DBG("sighandler");
 
        if(!have_listener) {
                create_listener();
-               have_listener = 1;
        }
 }
 
@@ -1128,6 +1126,13 @@ static void __attribute__((destructor)) keepalive()
        ustcomm_fini_app(&ustcomm_app);
 }
 
+void ust_potential_exec(void)
+{
+       trace_mark(ust, potential_exec, MARK_NOARGS);
+
+       keepalive();
+}
+
 /* Notify ust that there was a fork. This needs to be called inside
  * the new process, anytime a process whose memory is not shared with
  * the parent is created. If this function is not called, the events
@@ -1148,6 +1153,8 @@ void ust_fork(void)
 
        /* Delete all blocked consumers */
        list_for_each_entry(bc, &blocked_consumers, list) {
+               close(bc->fd_producer);
+               close(bc->fd_consumer);
                free(deletable_bc);
                deletable_bc = bc;
                list_del(&bc->list);
This page took 0.024182 seconds and 4 git commands to generate.