Improve and fix mpsc documentation
Closes #37915 This commit enhances documentation with several links and fixes an error in the `sync_channel` documentation as well: `send` doesn't panic when the senders are all disconnected
This commit is contained in:
parent
7e39c0ede5
commit
57f998a460
1 changed files with 20 additions and 9 deletions
|
|
@ -454,10 +454,16 @@ impl<T> UnsafeFlavor<T> for Receiver<T> {
|
|||
}
|
||||
|
||||
/// Creates a new asynchronous channel, returning the sender/receiver halves.
|
||||
///
|
||||
/// All data sent on the sender will become available on the receiver, and no
|
||||
/// send will block the calling thread (this channel has an "infinite buffer").
|
||||
///
|
||||
/// If the [`Receiver`] is disconnected while trying to [`send()`] with the
|
||||
/// [`Sender`], the [`send()`] method will return an error.
|
||||
///
|
||||
/// [`send()`]: ../../../std/sync/mpsc/struct.Sender.html#method.send
|
||||
/// [`Sender`]: ../../../std/sync/mpsc/struct.Sender.html
|
||||
/// [`Receiver`]: ../../../std/sync/mpsc/struct.Receiver.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
|
|
@ -487,18 +493,23 @@ pub fn channel<T>() -> (Sender<T>, Receiver<T>) {
|
|||
|
||||
/// Creates a new synchronous, bounded channel.
|
||||
///
|
||||
/// Like asynchronous channels, the `Receiver` will block until a message
|
||||
/// Like asynchronous channels, the [`Receiver`] will block until a message
|
||||
/// becomes available. These channels differ greatly in the semantics of the
|
||||
/// sender from asynchronous channels, however.
|
||||
///
|
||||
/// This channel has an internal buffer on which messages will be queued. `bound`
|
||||
/// specifies the buffer size. When the internal buffer becomes full, future sends
|
||||
/// will *block* waiting for the buffer to open up. Note that a buffer size of 0
|
||||
/// is valid, in which case this becomes "rendezvous channel" where each send will
|
||||
/// not return until a recv is paired with it.
|
||||
/// This channel has an internal buffer on which messages will be queued.
|
||||
/// `bound` specifies the buffer size. When the internal buffer becomes full,
|
||||
/// future sends will *block* waiting for the buffer to open up. Note that a
|
||||
/// buffer size of 0 is valid, in which case this becomes "rendezvous channel"
|
||||
/// where each [`send()`] will not return until a recv is paired with it.
|
||||
///
|
||||
/// As with asynchronous channels, all senders will panic in `send` if the
|
||||
/// `Receiver` has been destroyed.
|
||||
/// Like asynchronous channels, if the [`Receiver`] is disconnected while
|
||||
/// trying to [`send()`] with the [`SyncSender`], the [`send()`] method will
|
||||
/// return an error.
|
||||
///
|
||||
/// [`send()`]: ../../../std/sync/mpsc/struct.SyncSender.html#method.send
|
||||
/// [`SyncSender`]: ../../../std/sync/mpsc/struct.SyncSender.html
|
||||
/// [`Receiver`]: ../../../std/sync/mpsc/struct.Receiver.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue