X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fwaiter.cpp;h=3ddb68feb7c76dd91f09bec9d7664c02224627a2;hp=037feca2260b34d2e99cd553369e3763abb28d33;hb=HEAD;hpb=32670d719327feb585374283a50eeb76ce36b962 diff --git a/src/common/waiter.cpp b/src/common/waiter.cpp index 037feca22..8d2ba4d69 100644 --- a/src/common/waiter.cpp +++ b/src/common/waiter.cpp @@ -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(waiter& waiter) 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, <tng::synchro::waiter::_wait_queue_node);