@@ -418,29 +418,38 @@ impl<T> Sender<T> {
418418 /// the channel is full. The returned error contains the original message.
419419 ///
420420 /// If called on a zero-capacity channel, this method will send the message only if there
421- /// happens to be a receive operation on the other side of the channel at the same time.
421+ /// happens to be a pending receive operation on the other side of the channel at the same time,
422+ /// otherwise it will return the value to the sender.
422423 ///
423424 /// ```
424425 /// use crossbeam_channel::{bounded, ForceSendError};
425426 ///
426427 /// let (s, r) = bounded(3);
428+ ///
427429 /// assert_eq!(s.force_send(0), Ok(None));
428430 /// assert_eq!(s.force_send(1), Ok(None));
429431 /// assert_eq!(s.force_send(2), Ok(None));
430- /// assert_eq!(s.force_send(3), Ok(Some(2)));
431- /// assert_eq!(r.recv(), Ok(0));
432- /// assert_eq!(s.force_send(4), Ok(None));
432+ /// assert_eq!(s.force_send(3), Ok(Some(0)));
433+ ///
433434 /// assert_eq!(r.recv(), Ok(1));
435+ ///
436+ /// assert_eq!(s.force_send(4), Ok(None));
437+ ///
438+ /// assert_eq!(r.recv(), Ok(2));
434439 /// assert_eq!(r.recv(), Ok(3));
440+ ///
435441 /// assert_eq!(s.force_send(5), Ok(None));
436442 /// assert_eq!(s.force_send(6), Ok(None));
437- /// assert_eq!(s.force_send(7), Ok(Some(6)));
438- /// assert_eq!(s.force_send(8), Ok(Some(7)));
439- /// assert_eq!(r.recv(), Ok(4));
440- /// assert_eq!(r.recv(), Ok(5));
443+ /// assert_eq!(s.force_send(7), Ok(Some(4)));
444+ /// assert_eq!(s.force_send(8), Ok(Some(5)));
445+ ///
446+ /// assert_eq!(r.recv(), Ok(6));
447+ /// assert_eq!(r.recv(), Ok(7));
441448 /// assert_eq!(r.recv(), Ok(8));
449+ ///
442450 /// drop(r);
443- /// assert_eq!(s.force_send(9), Err(ForceSendError::Disconnected(9)));
451+ ///
452+ /// assert_eq!(s.force_send(9), Err(ForceSendError(9)));
444453 /// ``````
445454 pub fn force_send ( & self , msg : T ) -> Result < Option < T > , ForceSendError < T > > {
446455 match & self . flavor {
0 commit comments