X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-ust-comm.c;h=3cebb9811348545bb5c9a9d59556ab60362f5690;hb=48a143c09cc97bf7a2ace811277e7d60b294b5f6;hp=e392e460cca2dada53036fc622adbc8b3cf87355;hpb=04682184d7f67b02f73aa8f2581cfa2a67a81f74;p=lttng-ust.git diff --git a/liblttng-ust/lttng-ust-comm.c b/liblttng-ust/lttng-ust-comm.c index e392e460..3cebb981 100644 --- a/liblttng-ust/lttng-ust-comm.c +++ b/liblttng-ust/lttng-ust-comm.c @@ -86,6 +86,8 @@ static int initialized; * * ust_lock nests within the dynamic loader lock (within glibc) because * it is taken within the library constructor. + * + * The ust fd tracker lock nests within the ust_mutex. */ static pthread_mutex_t ust_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -1455,6 +1457,7 @@ void *ust_listener_thread(void *arg) long timeout; lttng_ust_fixup_tls(); + lttng_ust_fd_tracker_register_thread(); /* * If available, add '-ust' to the end of this thread's * process name @@ -2065,6 +2068,7 @@ void ust_before_fork(sigset_t *save_sigset) ust_lock_nocheck(); urcu_bp_before_fork(); + lttng_ust_lock_fd_tracker(); } static void ust_after_fork_common(sigset_t *restore_sigset) @@ -2072,6 +2076,7 @@ static void ust_after_fork_common(sigset_t *restore_sigset) int ret; DBG("process %d", getpid()); + lttng_ust_unlock_fd_tracker(); ust_unlock(); pthread_mutex_unlock(&ust_fork_mutex);