Struct std::sync::OnceState
pub struct OnceState { /* fields omitted */ }
State yielded to Once::call_once_force()
’s closure parameter. The state can be used to query the poison status of the Once
.
Implementations
impl OnceState
pub fn is_poisoned(&self) -> bool
Returns true
if the associated Once
was poisoned prior to the invocation of the closure passed to Once::call_once_force()
.
Examples
A poisoned Once
:
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.is_poisoned()); });
An unpoisoned Once
:
use std::sync::Once; static INIT: Once = Once::new(); INIT.call_once_force(|state| { assert!(!state.is_poisoned()); });
Trait Implementations
impl Debug for OnceState
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> From<T> for T
pub fn from(t: T) -> T
Performs the conversion.
pub fn into(self) -> U
Performs the conversion.
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
Performs the conversion.
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
Performs the conversion.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/sync/struct.OnceState.html