Skip to content

Commit 4e9e465

Browse files
committed
std: disconnect senders before discarding messages
1 parent 642a324 commit 4e9e465

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

library/std/src/sync/mpmc/array.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -464,14 +464,15 @@ impl<T> Channel<T> {
464464
/// ordering or stronger.
465465
pub(crate) unsafe fn disconnect_receivers(&self) -> bool {
466466
let tail = self.tail.fetch_or(self.mark_bit, Ordering::SeqCst);
467-
self.discard_all_messages(tail);
468-
469-
if tail & self.mark_bit == 0 {
467+
let disconnected = if tail & self.mark_bit == 0 {
470468
self.senders.disconnect();
471469
true
472470
} else {
473471
false
474-
}
472+
};
473+
474+
self.discard_all_messages(tail);
475+
disconnected
475476
}
476477

477478
/// Discards all messages.

0 commit comments

Comments
 (0)