Internal logging lazy-initialization
[lttng-ust.git] / src / lib / lttng-ust / lttng-ust-comm.c
index 15cb555028d979ff656ddbcf9e3c66e98f190c10..cd5b378c49be203d8d9fa72e37dc43f327fa86e3 100644 (file)
@@ -25,7 +25,6 @@
 #include <signal.h>
 #include <limits.h>
 #include <urcu/uatomic.h>
-#include "futex.h"
 #include <urcu/compiler.h>
 #include <lttng/urcu/urcu-ust.h>
 
 #include <lttng/ust-thread.h>
 #include <lttng/ust-tracer.h>
 #include <urcu/tls-compat.h>
+#include "common/compat/futex.h"
 #include "common/ustcomm.h"
 #include "common/ust-fd.h"
 #include "common/logging.h"
 #include "common/macros.h"
-#include "tracepoint-internal.h"
+#include "common/tracepoint.h"
 #include "lttng-tracer-core.h"
 #include "common/compat/pthread.h"
 #include "common/procname.h"
 #include "common/ringbuffer/rb-init.h"
 #include "lttng-ust-statedump.h"
 #include "clock.h"
-#include "common/ringbuffer/getcpu.h"
-#include "getenv.h"
-#include "ust-events-internal.h"
+#include "lib/lttng-ust/getcpu.h"
+#include "common/getenv.h"
+#include "lib/lttng-ust/events.h"
 #include "context-internal.h"
 #include "common/align.h"
 #include "lttng-counter-client.h"
@@ -1727,7 +1727,7 @@ void wait_for_sessiond(struct sock_info *sock_info)
 "Please upgrade your kernel "
 "(fix is commit 9ea71503a8ed9184d2d0b8ccc4d269d05f7940ae in Linux kernel "
 "mainline). LTTng-UST will use polling mode fallback.");
-                       if (ust_err_debug_enabled())
+                       if (lttng_ust_logging_debug_enabled())
                                PERROR("futex");
                        goto end_wait;
                }
@@ -2120,12 +2120,21 @@ void lttng_ust_init(void)
         * sessiond (otherwise leading to errors when trying to create
         * sessiond before the init functions are completed).
         */
-       ust_err_init();
-       lttng_ust_getenv_init();        /* Needs ust_err_init() to be completed. */
+
+       /*
+        * Both the logging and getenv lazy-initialization uses getenv()
+        * internally and thus needs to be explicitly initialized in
+        * liblttng-ust before we start any threads as an unsuspecting normally
+        * single threaded application using liblttng-ust could be using
+        * setenv() which is not thread-safe.
+        */
+       lttng_ust_logging_init();
+       lttng_ust_getenv_init();
+
        lttng_ust_tp_init();
        lttng_ust_init_fd_tracker();
        lttng_ust_clock_init();
-       lttng_ust_getcpu_init();
+       lttng_ust_getcpu_plugin_init();
        lttng_ust_statedump_init();
        lttng_ust_ring_buffer_clients_init();
        lttng_ust_counter_clients_init();
This page took 0.024438 seconds and 4 git commands to generate.