Update version to 0.16
[ust.git] / libust / tracectl.c
index 1487ac73a3dd0b462798c3095fceed0f44d5a4a9..410b1c72e75cb52a2fd24a2898c590f31c011455 100644 (file)
 #include <fcntl.h>
 #include <poll.h>
 #include <regex.h>
-#include <urcu/uatomic_arch.h>
+#include <urcu/uatomic.h>
 #include <urcu/list.h>
 
 #include <ust/marker.h>
 #include <ust/tracepoint.h>
+#include <ust/tracepoint-internal.h>
 #include <ust/tracectl.h>
 #include <ust/clock.h>
 #include "tracer.h"
@@ -103,7 +104,6 @@ static void print_ust_marker(FILE *fp)
 {
        struct ust_marker_iter iter;
 
-       lock_ust_marker();
        ust_marker_iter_reset(&iter);
        ust_marker_iter_start(&iter);
 
@@ -113,17 +113,19 @@ static void print_ust_marker(FILE *fp)
                        (*iter.ust_marker)->name,
                        (int)(*iter.ust_marker)->state,
                        (*iter.ust_marker)->format,
-                       (*iter.ust_marker)->location);
+                       NULL);  /*
+                                * location is null for now, will be added
+                                * to a different table.
+                                */
                ust_marker_iter_next(&iter);
        }
-       unlock_ust_marker();
+       ust_marker_iter_stop(&iter);
 }
 
 static void print_trace_events(FILE *fp)
 {
        struct trace_event_iter iter;
 
-       lock_trace_events();
        trace_event_iter_reset(&iter);
        trace_event_iter_start(&iter);
 
@@ -131,7 +133,7 @@ static void print_trace_events(FILE *fp)
                fprintf(fp, "trace_event: %s\n", (*iter.trace_event)->name);
                trace_event_iter_next(&iter);
        }
-       unlock_trace_events();
+       trace_event_iter_stop(&iter);
 }
 
 static int connect_ustconsumer(void)
@@ -1225,12 +1227,19 @@ static struct ustcomm_sock * init_app_socket(int epoll_fd)
        char *dir_name, *sock_name;
        int result;
        struct ustcomm_sock *sock = NULL;
+       time_t mtime;
 
        dir_name = ustcomm_user_sock_dir();
        if (!dir_name)
                return NULL;
 
-       result = asprintf(&sock_name, "%s/%d", dir_name, (int)getpid());
+       mtime = ustcomm_pid_st_mtime(getpid());
+       if (!mtime) {
+               goto free_dir_name;
+       }
+
+       result = asprintf(&sock_name, "%s/%d.%ld", dir_name,
+                         (int) getpid(), (long) mtime);
        if (result < 0) {
                ERR("string overflow allocating socket name, "
                    "UST thread bailing");
@@ -1304,18 +1313,17 @@ static void __attribute__((constructor)) init()
                DBG("UST traces will not be synchronized with LTTng traces");
        }
 
+       if (getenv("UST_TRACE") || getenv("UST_AUTOPROBE")) {
+               /* Ensure ust_marker control is initialized */
+               init_ust_marker_control();
+       }
+
        autoprobe_val = getenv("UST_AUTOPROBE");
        if (autoprobe_val) {
                struct ust_marker_iter iter;
 
                DBG("Autoprobe enabled.");
 
-               /* Ensure ust_marker are initialized */
-               //init_ust_marker();
-
-               /* Ensure ust_marker control is initialized, for the probe */
-               init_ust_marker_control();
-
                /* first, set the callback that will connect the
                 * probe on new ust_marker
                 */
@@ -1347,6 +1355,7 @@ static void __attribute__((constructor)) init()
                        auto_probe_connect(*iter.ust_marker);
                        ust_marker_iter_next(&iter);
                }
+               ust_marker_iter_stop(&iter);
        }
 
        if (getenv("UST_OVERWRITE")) {
@@ -1390,12 +1399,6 @@ static void __attribute__((constructor)) init()
 
                DBG("starting early tracing");
 
-               /* Ensure ust_marker control is initialized */
-               init_ust_marker_control();
-
-               /* Ensure ust_marker are initialized */
-               init_ust_marker();
-
                /* Ensure buffers are initialized, for the transport to be available.
                 * We are about to set a trace type and it will fail without this.
                 */
@@ -1706,7 +1709,6 @@ static void ust_after_fork_common(ust_fork_info_t *fork_info)
 
        pthread_mutex_unlock(&listen_sock_mutex);
        pthread_mutex_unlock(&listener_thread_data_mutex);
-
         /* Restore signals */
         result = sigprocmask(SIG_SETMASK, &fork_info->orig_sigs, NULL);
         if (result == -1) {
@@ -1730,7 +1732,7 @@ void ust_after_fork_child(ust_fork_info_t *fork_info)
        /* Sanitize the child */
        ust_fork();
 
-       /* Then release mutexes and reenable signals */
+       /* Release mutexes and reenable signals */
        ust_after_fork_common(fork_info);
 }
 
This page took 0.024626 seconds and 4 git commands to generate.