Auto merge of #26856 - steveklabnik:gh26475, r=alexcrichton
Fixes #26475 I'm not sure this is enough, really, but I'm not totally clear on what specific information would be valuable here. In the original issue, the Java page was pretty decent, but now I can't think of a different way to word it, and copying their prose is of course not acceptable. thoughts @alexcrichton @aturon @aidanhs ?
This commit is contained in:
commit
21dfd24c4b
1 changed files with 18 additions and 2 deletions
|
@ -508,9 +508,25 @@ pub fn sleep(dur: Duration) {
|
|||
imp::Thread::sleep(dur)
|
||||
}
|
||||
|
||||
/// Blocks unless or until the current thread's token is made available (may wake spuriously).
|
||||
/// Blocks unless or until the current thread's token is made available.
|
||||
///
|
||||
/// See the module doc for more detail.
|
||||
/// Every thread is equipped with some basic low-level blocking support, via
|
||||
/// the `park()` function and the [`unpark()`][unpark] method. These can be
|
||||
/// used as a more CPU-efficient implementation of a spinlock.
|
||||
///
|
||||
/// [unpark]: struct.Thread.html#method.unpark
|
||||
///
|
||||
/// The API is typically used by acquiring a handle to the current thread,
|
||||
/// placing that handle in a shared data structure so that other threads can
|
||||
/// find it, and then parking (in a loop with a check for the token actually
|
||||
/// being acquired).
|
||||
///
|
||||
/// A call to `park` does not guarantee that the thread will remain parked
|
||||
/// forever, and callers should be prepared for this possibility.
|
||||
///
|
||||
/// See the [module documentation][thread] for more detail.
|
||||
///
|
||||
/// [thread]: index.html
|
||||
//
|
||||
// The implementation currently uses the trivial strategy of a Mutex+Condvar
|
||||
// with wakeup flag, which does not actually allow spurious wakeups. In the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue