diff options
author | Mikail Bagishov <bagishov.mikail@yandex.ru> | 2020-09-28 18:37:28 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-28 11:37:28 -0400 |
commit | 078d0a2ebc4d4f88cb6bce05c8ac4f5038dae9be (patch) | |
tree | 0ff39cf970d57028ee49bd362fb4acce95e8b4ae /tokio/src/sync/mpsc/unbounded.rs | |
parent | 99d4061203aa5dbf79b06352b06bc9818a293665 (diff) |
sync: Add `is_closed` method to mpsc senders (#2726)
Co-authored-by: Alice Ryhl <alice@ryhl.io>
Diffstat (limited to 'tokio/src/sync/mpsc/unbounded.rs')
-rw-r--r-- | tokio/src/sync/mpsc/unbounded.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tokio/src/sync/mpsc/unbounded.rs b/tokio/src/sync/mpsc/unbounded.rs index 09f71f21..b92cbc05 100644 --- a/tokio/src/sync/mpsc/unbounded.rs +++ b/tokio/src/sync/mpsc/unbounded.rs @@ -245,4 +245,25 @@ impl<T> UnboundedSender<T> { pub async fn closed(&mut self) { self.chan.closed().await } + /// Checks if the channel has been closed. This happens when the + /// [`UnboundedReceiver`] is dropped, or when the + /// [`UnboundedReceiver::close`] method is called. + /// + /// [`UnboundedReceiver`]: crate::sync::mpsc::UnboundedReceiver + /// [`UnboundedReceiver::close`]: crate::sync::mpsc::UnboundedReceiver::close + /// + /// ``` + /// let (tx, rx) = tokio::sync::mpsc::unbounded_channel::<()>(); + /// assert!(!tx.is_closed()); + /// + /// let tx2 = tx.clone(); + /// assert!(!tx2.is_closed()); + /// + /// drop(rx); + /// assert!(tx.is_closed()); + /// assert!(tx2.is_closed()); + /// ``` + pub fn is_closed(&self) -> bool { + self.chan.is_closed() + } } |