about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2017-06-01 00:09:27 -0400
committerGitHub <noreply@github.com>2017-06-01 00:09:27 -0400
commit9bd6dc73fc7fd46bf83ff17bea13a410efb1fc96 (patch)
treefd62a4e7688baa1ef79d4d4ac559f487d64903e4 /src/libstd
parent9d68a231e6247ba102add44c9c95724859e3e494 (diff)
parentbcd1fe56c750b2549d633f161280e13dd348a095 (diff)
downloadrust-9bd6dc73fc7fd46bf83ff17bea13a410efb1fc96.tar.gz
rust-9bd6dc73fc7fd46bf83ff17bea13a410efb1fc96.zip
Rollup merge of #42347 - frewsxcv:frewsxcv/improve-receiver-recv-timeout-docs, r=QuietMisdreavus
Rewrite doc examples for `Receiver::recv_timeout`.

None
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sync/mpsc/mod.rs37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/libstd/sync/mpsc/mod.rs b/src/libstd/sync/mpsc/mod.rs
index 69507cada2b..744868e2e23 100644
--- a/src/libstd/sync/mpsc/mod.rs
+++ b/src/libstd/sync/mpsc/mod.rs
@@ -1252,14 +1252,43 @@ impl<T> Receiver<T> {
     ///
     /// # Examples
     ///
+    /// Successfully receiving value before encountering timeout:
+    ///
+    /// ```no_run
+    /// use std::thread;
+    /// use std::time::Duration;
+    /// use std::sync::mpsc;
+    ///
+    /// let (send, recv) = mpsc::channel();
+    ///
+    /// thread::spawn(move || {
+    ///     send.send('a').unwrap();
+    /// });
+    ///
+    /// assert_eq!(
+    ///     recv.recv_timeout(Duration::from_millis(400)),
+    ///     Ok('a')
+    /// );
+    /// ```
+    ///
+    /// Receiving an error upon reaching timeout:
+    ///
     /// ```no_run
-    /// use std::sync::mpsc::{self, RecvTimeoutError};
+    /// use std::thread;
     /// use std::time::Duration;
+    /// use std::sync::mpsc;
+    ///
+    /// let (send, recv) = mpsc::channel();
     ///
-    /// let (send, recv) = mpsc::channel::<()>();
+    /// thread::spawn(move || {
+    ///     thread::sleep(Duration::from_millis(800));
+    ///     send.send('a').unwrap();
+    /// });
     ///
-    /// let timeout = Duration::from_millis(100);
-    /// assert_eq!(Err(RecvTimeoutError::Timeout), recv.recv_timeout(timeout));
+    /// assert_eq!(
+    ///     recv.recv_timeout(Duration::from_millis(400)),
+    ///     Err(mpsc::RecvTimeoutError::Timeout)
+    /// );
     /// ```
     #[stable(feature = "mpsc_recv_timeout", since = "1.12.0")]
     pub fn recv_timeout(&self, timeout: Duration) -> Result<T, RecvTimeoutError> {