diff --git a/tokio/src/sync/broadcast.rs b/tokio/src/sync/broadcast.rs index 6bfb844734f..a6179a46bc7 100644 --- a/tokio/src/sync/broadcast.rs +++ b/tokio/src/sync/broadcast.rs @@ -1430,9 +1430,10 @@ impl<'a, T> Drop for Recv<'a, T> { let mut tail = self.receiver.shared.tail.lock(); // Safety: tail lock is held. + // `Relaxed` order suffices because we hold the tail lock. let queued = self .waiter - .with_mut(|ptr| unsafe { *(*ptr).queued.get_mut() }); + .with_mut(|ptr| unsafe { (*ptr).queued.load(Relaxed) }); if queued { // Remove the node