Fix: syscall event rule: emission sites not compared in is_equal
[lttng-tools.git] / src / common / waiter.cpp
index 037feca2260b34d2e99cd553369e3763abb28d33..8d2ba4d696ec228a5f886bc79ef10fa29f34c36e 100644 (file)
@@ -58,8 +58,7 @@ void lttng::synchro::waiter::wait()
        }
 
        while (uatomic_read(&_state) == WAITER_WAITING) {
-               if (!futex_noasync(
-                           &_state, FUTEX_WAIT, WAITER_WAITING, nullptr, nullptr, 0)) {
+               if (!futex_noasync(&_state, FUTEX_WAIT, WAITER_WAITING, nullptr, nullptr, 0)) {
                        /*
                         * Prior queued wakeups queued by unrelated code
                         * using the same address can cause futex wait to
@@ -123,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()
@@ -142,7 +141,7 @@ lttng::synchro::wait_queue::wait_queue()
        cds_wfs_init(&_stack);
 }
 
-void lttng::synchro::wait_queue::add(waiter &waiter) noexcept
+void lttng::synchro::wait_queue::add(waiterwaiter) noexcept
 {
        (void) cds_wfs_push(&_stack, &waiter._wait_queue_node);
 }
@@ -154,7 +153,7 @@ void lttng::synchro::wait_queue::wake_all()
 
        /* Wake all waiters in our stack head. */
        cds_wfs_node *iter, *iter_n;
-       cds_wfs_for_each_blocking_safe(waiters, iter, iter_n) {
+       cds_wfs_for_each_blocking_safe (waiters, iter, iter_n) {
                auto& waiter = *lttng::utils::container_of(
                        iter, &lttng::synchro::waiter::_wait_queue_node);
 
This page took 0.024838 seconds and 4 git commands to generate.