Skip to content

Commit 14c02d5

Browse files
committed
doc test: fix mpsc.rs try_send doc test
Signed-off-by: Eval EXEC <[email protected]>
1 parent a153133 commit 14c02d5

File tree

1 file changed

+16
-27
lines changed

1 file changed

+16
-27
lines changed

library/std/src/sync/mpsc.rs

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -689,39 +689,28 @@ impl<T> SyncSender<T> {
689689
/// # Examples
690690
///
691691
/// ```rust
692-
/// use std::sync::mpsc::sync_channel;
693-
/// use std::thread;
692+
/// use std::sync::mpsc::{sync_channel, TrySendError};
694693
///
695694
/// // Create a sync_channel with buffer size 1
696-
/// let (sync_sender, receiver) = sync_channel(1);
697-
/// let sync_sender2 = sync_sender.clone();
695+
/// let (sender, receiver) = sync_channel(1);
698696
///
699-
/// // First thread owns sync_sender
700-
/// thread::spawn(move || {
701-
/// sync_sender.send(1).unwrap();
702-
/// sync_sender.send(2).unwrap();
703-
/// // Thread blocked
704-
/// });
697+
/// // First send succeeds immediately
698+
/// assert!(sender.try_send(1).is_ok());
705699
///
706-
/// // Second thread owns sync_sender2
707-
/// thread::spawn(move || {
708-
/// // This will return an error and send
709-
/// // no message if the buffer is full
710-
/// let _ = sync_sender2.try_send(3);
711-
/// });
712-
///
713-
/// let mut msg;
714-
/// msg = receiver.recv().unwrap();
715-
/// println!("message {msg} received");
700+
/// // Second send fails because buffer is full
701+
/// match sender.try_send(2) {
702+
/// Err(TrySendError::Full(2)) => {
703+
/// println!("Channel buffer is full, couldn't send 2");
704+
/// }
705+
/// _ => unreachable!(),
706+
/// }
716707
///
717-
/// msg = receiver.recv().unwrap();
718-
/// println!("message {msg} received");
708+
/// // After receiving, buffer has space again
709+
/// let received = receiver.recv().unwrap();
710+
/// assert_eq!(received, 1);
719711
///
720-
/// // Third message may have never been sent
721-
/// match receiver.try_recv() {
722-
/// Ok(msg) => println!("message {msg} received"),
723-
/// Err(_) => println!("the third message was never sent"),
724-
/// }
712+
/// // Now try_send succeeds again
713+
/// assert!(sender.try_send(3).is_ok());
725714
/// ```
726715
#[stable(feature = "rust1", since = "1.0.0")]
727716
pub fn try_send(&self, t: T) -> Result<(), TrySendError<T>> {

0 commit comments

Comments
 (0)