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
commit e0e598bb76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -73,16 +73,17 @@ use thread::{self, Thread};
/// A synchronization primitive which can be used to run a one-time global
/// initialization. Useful for one-time initialization for FFI or related
/// 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::new`]: struct.Once.html#method.new
///
/// # Examples
///
/// ```
/// use std::sync::{Once, ONCE_INIT};
/// use std::sync::Once;
///
/// static START: Once = ONCE_INIT;
/// static START: Once = Once::new();
///
/// START.call_once(|| {
/// // run initialization here
@ -180,10 +181,10 @@ impl Once {
/// # Examples
///
/// ```
/// use std::sync::{Once, ONCE_INIT};
/// use std::sync::Once;
///
/// 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
/// // in a synchronized fashion (e.g. write once or read all) then we're
@ -248,10 +249,10 @@ impl Once {
/// ```
/// #![feature(once_poison)]
///
/// use std::sync::{Once, ONCE_INIT};
/// use std::sync::Once;
/// use std::thread;
///
/// static INIT: Once = ONCE_INIT;
/// static INIT: Once = Once::new();
///
/// // poison the once
/// let handle = thread::spawn(|| {
@ -431,10 +432,10 @@ impl OnceState {
/// ```
/// #![feature(once_poison)]
///
/// use std::sync::{Once, ONCE_INIT};
/// use std::sync::Once;
/// use std::thread;
///
/// static INIT: Once = ONCE_INIT;
/// static INIT: Once = Once::new();
///
/// // poison the once
/// let handle = thread::spawn(|| {
@ -452,9 +453,9 @@ impl OnceState {
/// ```
/// #![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| {
/// assert!(!state.poisoned());