forked from mirror/async-std
channel/recv: improving function docs and code example
At the moment it's not clear when and why recv returns Option<T>, instead of just T. This changed comment makes it clear that None will only be returned once no data will ever be sent again (i.e. after all senders are gone).
This commit is contained in:
parent
125fa5b0a0
commit
aae835cc14
1 changed files with 6 additions and 2 deletions
|
@ -346,8 +346,9 @@ pub struct Receiver<T> {
|
|||
impl<T> Receiver<T> {
|
||||
/// Receives a message from the channel.
|
||||
///
|
||||
/// If the channel is empty and still has senders, this method will wait until a message is
|
||||
/// sent into the channel or until all senders get dropped.
|
||||
/// If the channel is emtpy and still has senders, this method
|
||||
/// will wait until a message is sent into it. Once all senders
|
||||
/// have been dropped it will return `None`.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -362,10 +363,13 @@ impl<T> Receiver<T> {
|
|||
/// task::spawn(async move {
|
||||
/// s.send(1).await;
|
||||
/// s.send(2).await;
|
||||
/// // Then we drop the sender
|
||||
/// });
|
||||
///
|
||||
/// assert_eq!(r.recv().await, Some(1));
|
||||
/// assert_eq!(r.recv().await, Some(2));
|
||||
///
|
||||
/// // recv() returns `None`
|
||||
/// assert_eq!(r.recv().await, None);
|
||||
/// #
|
||||
/// # })
|
||||
|
|
Loading…
Reference in a new issue