Skip to content

Commit

Permalink
Rollup merge of rust-lang#68945 - mjbshaw:once_is_completed, r=LukasK…
Browse files Browse the repository at this point in the history
…albertodt

Stabilize Once::is_completed

Closes rust-lang#54890

This function has been around for some time. I haven't seen anyone raise any objections to it. I've personally found it useful myself. It would be nice to finally stabilize it and
  • Loading branch information
Dylan-DPC authored Feb 20, 2020
2 parents 72b7bfd + 348278a commit 2a3ce7b
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions src/libstd/sync/once.rs
Original file line number Diff line number Diff line change
Expand Up @@ -331,14 +331,14 @@ impl Once {
/// * `call_once` was called, but has not yet completed,
/// * the `Once` instance is poisoned
///
/// It is also possible that immediately after `is_completed`
/// returns false, some other thread finishes executing
/// `call_once`.
/// This function returning `false` does not mean that `Once` has not been
/// executed. For example, it may have been executed in the time between
/// when `is_completed` starts executing and when it returns, in which case
/// the `false` return value would be stale (but still permissible).
///
/// # Examples
///
/// ```
/// #![feature(once_is_completed)]
/// use std::sync::Once;
///
/// static INIT: Once = Once::new();
Expand All @@ -351,7 +351,6 @@ impl Once {
/// ```
///
/// ```
/// #![feature(once_is_completed)]
/// use std::sync::Once;
/// use std::thread;
///
Expand All @@ -364,7 +363,7 @@ impl Once {
/// assert!(handle.join().is_err());
/// assert_eq!(INIT.is_completed(), false);
/// ```
#[unstable(feature = "once_is_completed", issue = "54890")]
#[stable(feature = "once_is_completed", since = "1.44.0")]
#[inline]
pub fn is_completed(&self) -> bool {
// An `Acquire` load is enough because that makes all the initialization
Expand Down

0 comments on commit 2a3ce7b

Please sign in to comment.