Fix: syscall event rule: emission sites not compared in is_equal
[lttng-tools.git] / src / common / waiter.cpp
index 1cfd3e6f7778f14a630b4e34ff69bf6a6081214f..8d2ba4d696ec228a5f886bc79ef10fa29f34c36e 100644 (file)
@@ -122,18 +122,18 @@ void lttng::synchro::waker::wake()
 {
        cmm_smp_mb();
 
-       LTTNG_ASSERT(uatomic_read(&_state) == WAITER_WAITING);
+       LTTNG_ASSERT(uatomic_read(&_state.get()) == WAITER_WAITING);
 
-       uatomic_set(&_state, WAITER_WOKEN_UP);
-       if (!(uatomic_read(&_state) & WAITER_RUNNING)) {
-               if (futex_noasync(&_state, FUTEX_WAKE, 1, nullptr, nullptr, 0) < 0) {
+       uatomic_set(&_state.get(), WAITER_WOKEN_UP);
+       if (!(uatomic_read(&_state.get()) & WAITER_RUNNING)) {
+               if (futex_noasync(&_state.get(), FUTEX_WAKE, 1, nullptr, nullptr, 0) < 0) {
                        PERROR("futex_noasync");
                        abort();
                }
        }
 
        /* Allow teardown of struct urcu_wait memory. */
-       uatomic_or(&_state, WAITER_TEARDOWN);
+       uatomic_or(&_state.get(), WAITER_TEARDOWN);
 }
 
 lttng::synchro::wait_queue::wait_queue()
This page took 0.022889 seconds and 4 git commands to generate.