Struct std::sync::OnceState 1.51.0[−][src]
pub struct OnceState { /* fields omitted */ }Expand description
State yielded to Once::call_once_force()’s closure parameter. The state
can be used to query the poison status of the Once.
Implementations
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());
});RunAn unpoisoned Once:
use std::sync::Once;
static INIT: Once = Once::new();
INIT.call_once_force(|state| {
assert!(!state.is_poisoned());
});Run