@@ -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