]> git.lizzy.rs Git - rust.git/commitdiff
std: Join threads in select! doctest
authorAlex Crichton <alex@alexcrichton.com>
Mon, 4 May 2015 18:30:14 +0000 (11:30 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Mon, 4 May 2015 18:31:36 +0000 (11:31 -0700)
This test has deadlocked on Windows once or twice now and we've had lots of
problems in the past of threads panicking when the process is being shut down.
One of the two threads in this test is guaranteed to panic because of the
`.unwrap()` on the `send` calls, so just call `recv` on both receivers after the
test executes to ensure that both threads are dying/dead.

src/libstd/macros.rs

index fcebe9c5e98d60e7c59c8df0c655267af8e9af8c..4e3f157be5c1ded83103a1c2024ca2c9b008e8fc 100644 (file)
@@ -152,12 +152,14 @@ macro_rules! try {
 /// thread::spawn(move|| { long_running_task(); tx1.send(()).unwrap(); });
 /// thread::spawn(move|| { tx2.send(calculate_the_answer()).unwrap(); });
 ///
-/// select! (
+/// select! {
 ///     _ = rx1.recv() => println!("the long running task finished first"),
 ///     answer = rx2.recv() => {
 ///         println!("the answer was: {}", answer.unwrap());
 ///     }
-/// )
+/// }
+/// # drop(rx1.recv());
+/// # drop(rx2.recv());
 /// ```
 ///
 /// For more information about select, see the `std::sync::mpsc::Select` structure.