[−][src]Struct sp_std::sync::OnceState
🔬 This is a nightly-only experimental API. (
once_poison)State yielded to call_once_force’s closure parameter. The state can be
used to query the poison status of the Once.
Implementations
impl OnceState[src][−]
pub fn poisoned(&self) -> bool[src][−]
🔬 This is a nightly-only experimental API. (
once_poison)Returns true if the associated Once was poisoned prior to the
invocation of the closure passed to call_once_force.
Examples
A poisoned Once:
#![feature(once_poison)] use std::sync::Once; use std::thread; static INIT: Once = Once::new(); // poison the once let handle = thread::spawn(|| { INIT.call_once(|| panic!()); }); assert!(handle.join().is_err()); INIT.call_once_force(|state| { assert!(state.poisoned()); });
An unpoisoned Once:
#![feature(once_poison)] use std::sync::Once; static INIT: Once = Once::new(); INIT.call_once_force(|state| { assert!(!state.poisoned()); });
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for OnceState
impl Send for OnceState
impl !Sync for OnceState
impl Unpin for OnceState
impl UnwindSafe for OnceState
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src][+]
T: ?Sized,
impl<T> From<T> for T[src][+]
impl<T, U> Into<U> for T where
U: From<T>, [src][+]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src][+]
U: TryFrom<T>,