From b1f47aa8380c8dbe7fbd2d96d685cd1f28cc1a6d Mon Sep 17 00:00:00 2001 From: Felix Rabe Date: Tue, 7 Aug 2018 16:35:03 +0200 Subject: [PATCH] Document panic in mpsc::Receiver::recv_timeout --- src/libstd/sync/mpsc/mod.rs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/libstd/sync/mpsc/mod.rs b/src/libstd/sync/mpsc/mod.rs index fc0e37f150e..e82f40ff96f 100644 --- a/src/libstd/sync/mpsc/mod.rs +++ b/src/libstd/sync/mpsc/mod.rs @@ -1249,7 +1249,29 @@ pub fn recv(&self) -> Result { /// /// # Panics /// - /// Panics due to a known issue ([`#39364`][]). + /// There is currently a known issue with this function ([`#39364`]) that + /// causes `recv_timeout` to panic unexpectedly with the following example: + /// + /// ```no_run + /// use std::sync::mpsc::channel; + /// use std::thread; + /// use std::time::Duration; + /// + /// let (tx, rx) = channel::(); + /// + /// thread::spawn(move || { + /// let d = Duration::from_millis(10); + /// loop { + /// println!("recv"); + /// let _r = rx.recv_timeout(d); + /// } + /// }); + /// + /// thread::sleep(Duration::from_millis(100)); + /// let _c1 = tx.clone(); + /// + /// thread::sleep(Duration::from_secs(1)); + /// ``` /// /// [`#39364`]: https://github.com/rust-lang/rust/issues/39364 /// -- 2.44.0