Fix: perform TLS fixup in all UST entry points from each thread
[lttng-ust.git] / liblttng-ust / lttng-probes.c
index 433171cfb04635c424394a9e2c292f82a70a8ae4..4b5259230d97d5cec6e524b0b607162a31ab8d5a 100644 (file)
@@ -194,6 +194,8 @@ int lttng_probe_register(struct lttng_probe_desc *desc)
 {
        int ret = 0;
 
+       lttng_ust_fixup_tls();
+
        /*
         * If version mismatch, don't register, but don't trigger assert
         * on caller. The version check just prints an error.
@@ -201,7 +203,7 @@ int lttng_probe_register(struct lttng_probe_desc *desc)
        if (!check_provider_version(desc))
                return 0;
 
-       ust_lock();
+       ust_lock_nocheck();
 
        /*
         * Check if the provider has already been registered.
@@ -234,10 +236,12 @@ int ltt_probe_register(struct lttng_probe_desc *desc)
 
 void lttng_probe_unregister(struct lttng_probe_desc *desc)
 {
+       lttng_ust_fixup_tls();
+
        if (!check_provider_version(desc))
                return;
 
-       ust_lock();
+       ust_lock_nocheck();
        if (!desc->lazy)
                cds_list_del(&desc->head);
        else
This page took 0.023929 seconds and 4 git commands to generate.