Rollup merge of #51056 - tbu-:pr_once_new, r=dtolnay

Mention and use `Once::new` instead of `ONCE_INIT`
This commit is contained in:
kennytm
2018-05-26 19:32:24 +08:00
committed by GitHub

View File

@@ -73,16 +73,17 @@ use thread::{self, Thread};
/// A synchronization primitive which can be used to run a one-time global /// A synchronization primitive which can be used to run a one-time global
/// initialization. Useful for one-time initialization for FFI or related /// initialization. Useful for one-time initialization for FFI or related
/// functionality. This type can only be constructed with the [`ONCE_INIT`] /// functionality. This type can only be constructed with the [`ONCE_INIT`]
/// value. /// value or the equivalent [`Once::new`] constructor.
/// ///
/// [`ONCE_INIT`]: constant.ONCE_INIT.html /// [`ONCE_INIT`]: constant.ONCE_INIT.html
/// [`Once::new`]: struct.Once.html#method.new
/// ///
/// # Examples /// # Examples
/// ///
/// ``` /// ```
/// use std::sync::{Once, ONCE_INIT}; /// use std::sync::Once;
/// ///
/// static START: Once = ONCE_INIT; /// static START: Once = Once::new();
/// ///
/// START.call_once(|| { /// START.call_once(|| {
/// // run initialization here /// // run initialization here
@@ -180,10 +181,10 @@ impl Once {
/// # Examples /// # Examples
/// ///
/// ``` /// ```
/// use std::sync::{Once, ONCE_INIT}; /// use std::sync::Once;
/// ///
/// static mut VAL: usize = 0; /// static mut VAL: usize = 0;
/// static INIT: Once = ONCE_INIT; /// static INIT: Once = Once::new();
/// ///
/// // Accessing a `static mut` is unsafe much of the time, but if we do so /// // Accessing a `static mut` is unsafe much of the time, but if we do so
/// // in a synchronized fashion (e.g. write once or read all) then we're /// // in a synchronized fashion (e.g. write once or read all) then we're
@@ -248,10 +249,10 @@ impl Once {
/// ``` /// ```
/// #![feature(once_poison)] /// #![feature(once_poison)]
/// ///
/// use std::sync::{Once, ONCE_INIT}; /// use std::sync::Once;
/// use std::thread; /// use std::thread;
/// ///
/// static INIT: Once = ONCE_INIT; /// static INIT: Once = Once::new();
/// ///
/// // poison the once /// // poison the once
/// let handle = thread::spawn(|| { /// let handle = thread::spawn(|| {
@@ -431,10 +432,10 @@ impl OnceState {
/// ``` /// ```
/// #![feature(once_poison)] /// #![feature(once_poison)]
/// ///
/// use std::sync::{Once, ONCE_INIT}; /// use std::sync::Once;
/// use std::thread; /// use std::thread;
/// ///
/// static INIT: Once = ONCE_INIT; /// static INIT: Once = Once::new();
/// ///
/// // poison the once /// // poison the once
/// let handle = thread::spawn(|| { /// let handle = thread::spawn(|| {
@@ -452,9 +453,9 @@ impl OnceState {
/// ``` /// ```
/// #![feature(once_poison)] /// #![feature(once_poison)]
/// ///
/// use std::sync::{Once, ONCE_INIT}; /// use std::sync::Once;
/// ///
/// static INIT: Once = ONCE_INIT; /// static INIT: Once = Once::new();
/// ///
/// INIT.call_once_force(|state| { /// INIT.call_once_force(|state| {
/// assert!(!state.poisoned()); /// assert!(!state.poisoned());