Fix: notifier: use store-release/load-acquire for error counter
[lttng-ust.git] / liblttng-ust / lttng-ust-abi.c
index a024b616fe5198be022ebe6858ae6653556327a6..aad64a6dd326dbd13b01332c07d0bde8326b837c 100644 (file)
@@ -846,8 +846,16 @@ int lttng_ust_event_notifier_group_create_error_counter(int event_notifier_group
                goto create_error;
        }
 
-       event_notifier_group->error_counter = counter;
        event_notifier_group->error_counter_len = counter_len;
+       /*
+        * store-release to publish error counter matches load-acquire
+        * in record_error. Ensures the counter is created and the
+        * error_counter_len is set before they are used.
+        * Currently a full memory barrier is used, which could be
+        * turned into acquire-release barriers.
+        */
+       cmm_smp_mb();
+       CMM_STORE_SHARED(event_notifier_group->error_counter, counter);
 
        counter->objd = counter_objd;
        counter->event_notifier_group = event_notifier_group;   /* owner */
This page took 0.022885 seconds and 4 git commands to generate.