We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
broadcast::Sender
broadcast::Sender::new()
1 parent b9feac8 commit da292dfCopy full SHA for da292df
tokio/src/sync/broadcast.rs
@@ -522,7 +522,7 @@ impl<T> Sender<T> {
522
tail: Mutex::new(Tail {
523
pos: 0,
524
rx_cnt: receiver_count,
525
- closed: false,
+ closed: receiver_count == 0,
526
waiters: LinkedList::new(),
527
}),
528
num_tx: AtomicUsize::new(1),
tokio/tests/sync_broadcast.rs
@@ -656,3 +656,15 @@ async fn receiver_recv_is_cooperative() {
656
_ = tokio::task::yield_now() => {},
657
}
658
659
+
660
+#[tokio::test]
661
+async fn broadcast_sender_new_must_be_closed() {
662
+ let capacity = 1;
663
+ let tx: broadcast::Sender<()> = broadcast::Sender::new(capacity);
664
665
+ tx.send(()).unwrap_err();
666
667
+ let _rx = tx.subscribe();
668
669
+ tx.send(()).unwrap();
670
+}
0 commit comments