Fix: reset vtid cache before releasing urcu locks
[lttng-ust.git] / liblttng-ust / lttng-ust-comm.c
index e00a22ce4cae66dd7161111ba5de342dea7267b5..6c6eeda51a960c4b3632486faa67adc4e49b0ef0 100644 (file)
@@ -1696,6 +1696,7 @@ void lttng_ust_cleanup(int exiting)
 {
        cleanup_sock_info(&global_apps, exiting);
        cleanup_sock_info(&local_apps, exiting);
+       local_apps.allowed = 0;
        /*
         * The teardown in this function all affect data structures
         * accessed under the UST lock by the listener thread. This
@@ -1845,11 +1846,11 @@ void ust_after_fork_child(sigset_t *restore_sigset)
 {
        if (URCU_TLS(lttng_ust_nest_count))
                return;
+       lttng_context_vtid_reset();
        DBG("process %d", getpid());
        /* Release urcu mutexes */
        rcu_bp_after_fork_child();
        lttng_ust_cleanup(0);
-       lttng_context_vtid_reset();
        /* Release mutexes and reenable signals */
        ust_after_fork_common(restore_sigset);
        lttng_ust_init();
This page took 0.023257 seconds and 4 git commands to generate.