about summary refs log tree commit diff
path: root/src/libstd/thread
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2018-07-27 14:01:42 +0300
committerGitHub <noreply@github.com>2018-07-27 14:01:42 +0300
commit922bf1d2acf7b779fddd1bc05415d4d9052f9ec2 (patch)
tree55d2de03af8732d93e885848af3b60fbda55b2f6 /src/libstd/thread
parent7c2aeb9d974e85e54efa18cd63195bfd95347a44 (diff)
downloadrust-922bf1d2acf7b779fddd1bc05415d4d9052f9ec2.tar.gz
rust-922bf1d2acf7b779fddd1bc05415d4d9052f9ec2.zip
Clarify thread::park semantics
Diffstat (limited to 'src/libstd/thread')
-rw-r--r--src/libstd/thread/mod.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs
index 90f054186d1..6f3945301e4 100644
--- a/src/libstd/thread/mod.rs
+++ b/src/libstd/thread/mod.rs
@@ -731,7 +731,8 @@ const NOTIFIED: usize = 2;
 ///   specifying a maximum time to block the thread for.
 ///
 /// * The [`unpark`] method on a [`Thread`] atomically makes the token available
-///   if it wasn't already.
+///   if it wasn't already. Because the token is initially absent, [`unpark`] 
+///   followed by [`park`] will result in the second call returning immediately.
 ///
 /// In other words, each [`Thread`] acts a bit like a spinlock that can be
 /// locked and unlocked using `park` and `unpark`.
@@ -766,6 +767,8 @@ const NOTIFIED: usize = 2;
 /// // Let some time pass for the thread to be spawned.
 /// thread::sleep(Duration::from_millis(10));
 ///
+/// // There is no race condition here, if `unpark`
+/// // happens first, `park` will return immediately.
 /// println!("Unpark the thread");
 /// parked_thread.thread().unpark();
 ///