Move and hide new time_ns private symbols
[lttng-ust.git] / liblttng-ust / lttng-ust-comm.c
index 682992ca3d46fe719a8b22cfb761fd86ea47fa70..347a2e09fa3d5b5b61cf74eaf2f7a8fc99265156 100644 (file)
@@ -63,6 +63,7 @@
 #include "../libringbuffer/getcpu.h"
 #include "getenv.h"
 #include "ust-events-internal.h"
+#include "context-internal.h"
 
 /* Concatenate lttng ust shared library name with its major version number. */
 #define LTTNG_UST_LIB_SO_NAME "liblttng-ust.so." __ust_stringify(CONFIG_LTTNG_UST_LIBRARY_VERSION_MAJOR)
@@ -373,9 +374,13 @@ extern void lttng_ring_buffer_client_overwrite_rt_exit(void);
 extern void lttng_ring_buffer_client_discard_exit(void);
 extern void lttng_ring_buffer_client_discard_rt_exit(void);
 extern void lttng_ring_buffer_metadata_client_exit(void);
+LTTNG_HIDDEN
 extern void lttng_counter_client_percpu_32_modular_init(void);
+LTTNG_HIDDEN
 extern void lttng_counter_client_percpu_32_modular_exit(void);
+LTTNG_HIDDEN
 extern void lttng_counter_client_percpu_64_modular_init(void);
+LTTNG_HIDDEN
 extern void lttng_counter_client_percpu_64_modular_exit(void);
 
 static char *get_map_shm(struct sock_info *sock_info);
@@ -430,17 +435,17 @@ void lttng_fixup_ust_mutex_nest_tls(void)
 }
 
 /*
- * Fixup urcu bp TLS.
+ * Fixup lttng-ust urcu TLS.
  */
 static
-void lttng_fixup_urcu_bp_tls(void)
+void lttng_fixup_lttng_ust_urcu_tls(void)
 {
        (void) lttng_ust_urcu_read_ongoing();
 }
 
 void lttng_ust_fixup_tls(void)
 {
-       lttng_fixup_urcu_bp_tls();
+       lttng_fixup_lttng_ust_urcu_tls();
        lttng_fixup_ringbuffer_tls();
        lttng_fixup_vtid_tls();
        lttng_fixup_nest_count_tls();
@@ -1203,6 +1208,7 @@ int handle_message(struct sock_info *sock_info,
                                        &args, sock_info);
                else
                        ret = -ENOSYS;
+               free(args.counter.counter_data);
                break;
        }
        case LTTNG_UST_COUNTER_GLOBAL:
@@ -1220,6 +1226,16 @@ int handle_message(struct sock_info *sock_info,
                                        &args, sock_info);
                else
                        ret = -ENOSYS;
+               if (args.counter_shm.shm_fd >= 0) {
+                       int close_ret;
+
+                       lttng_ust_lock_fd_tracker();
+                       close_ret = close(args.counter_shm.shm_fd);
+                       lttng_ust_unlock_fd_tracker();
+                       args.counter_shm.shm_fd = -1;
+                       if (close_ret)
+                               PERROR("close");
+               }
                break;
        }
        case LTTNG_UST_COUNTER_CPU:
@@ -1237,6 +1253,16 @@ int handle_message(struct sock_info *sock_info,
                                        &args, sock_info);
                else
                        ret = -ENOSYS;
+               if (args.counter_shm.shm_fd >= 0) {
+                       int close_ret;
+
+                       lttng_ust_lock_fd_tracker();
+                       close_ret = close(args.counter_shm.shm_fd);
+                       lttng_ust_unlock_fd_tracker();
+                       args.counter_shm.shm_fd = -1;
+                       if (close_ret)
+                               PERROR("close");
+               }
                break;
        }
        case LTTNG_UST_EVENT_NOTIFIER_CREATE:
@@ -2381,8 +2407,6 @@ void ust_before_fork(sigset_t *save_sigset)
 
        ust_lock_nocheck();
        lttng_ust_urcu_before_fork();
-       if (lttng_ust_liburcu_bp_before_fork)
-               lttng_ust_liburcu_bp_before_fork();
        lttng_ust_lock_fd_tracker();
        lttng_perf_lock();
 }
@@ -2411,8 +2435,6 @@ void ust_after_fork_parent(sigset_t *restore_sigset)
                return;
        DBG("process %d", getpid());
        lttng_ust_urcu_after_fork_parent();
-       if (lttng_ust_liburcu_bp_after_fork_parent)
-               lttng_ust_liburcu_bp_after_fork_parent();
        /* Release mutexes and reenable signals */
        ust_after_fork_common(restore_sigset);
 }
@@ -2439,8 +2461,6 @@ void ust_after_fork_child(sigset_t *restore_sigset)
        DBG("process %d", getpid());
        /* Release urcu mutexes */
        lttng_ust_urcu_after_fork_child();
-       if (lttng_ust_liburcu_bp_after_fork_child)
-               lttng_ust_liburcu_bp_after_fork_child();
        lttng_ust_cleanup(0);
        /* Release mutexes and reenable signals */
        ust_after_fork_common(restore_sigset);
This page took 0.026145 seconds and 4 git commands to generate.