Skip to content

Commit 36fbcb5

Browse files
authored
fix (#450)
1 parent 12c2a72 commit 36fbcb5

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

async_simple/coro/ConditionVariable.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,13 @@ inline void ConditionVariable<Lock>::notifyAll() noexcept {
105105
template <class Lock>
106106
inline void ConditionVariable<Lock>::notifyOne() noexcept {
107107
auto awaitings = _awaiters.load(std::memory_order_acquire);
108-
if (!awaitings) {
109-
return;
110-
}
111-
while (!_awaiters.compare_exchange_weak(awaitings, awaitings->_next,
108+
while (awaitings && !_awaiters.compare_exchange_weak(awaitings, awaitings->_next,
112109
std::memory_order_acq_rel,
113110
std::memory_order_acquire))
114111
;
112+
if (!awaitings) {
113+
return;
114+
}
115115
awaitings->_next = nullptr;
116116
resumeWaiters(awaitings);
117117
}

0 commit comments

Comments
 (0)