diff --git a/futures-core/src/task/__internal/atomic_waker.rs b/futures-core/src/task/__internal/atomic_waker.rs index 3b82fb7cc8..0eb8116516 100644 --- a/futures-core/src/task/__internal/atomic_waker.rs +++ b/futures-core/src/task/__internal/atomic_waker.rs @@ -385,7 +385,7 @@ impl AtomicWaker { let waker = unsafe { (*self.waker.get()).take() }; // Release the lock - self.state.fetch_and(!WAKING, Release); + self.state.swap(WAITING, Release); waker }