Struct asynchron::SyncState [−][src]
pub struct SyncState<T> { /* fields omitted */ }Expand description
Simple helper thread safe state management,
using std::sync::Arc and std::sync::Mutex under the hood.
Example:
use asynchron::SyncState; fn main() -> core::result::Result<(), Box<dyn std::error::Error>> { let state: SyncState<i32> = SyncState::new(0); let _state = state.clone(); if let Err(_) = std::thread::spawn(move||{ _state.set(20); }) .join() { let e = std::io::Error::new(std::io::ErrorKind::Other, "Unable to join thread."); return Err(Box::new(e)); } if let Ok(value) = state.get() { println!("{:?}", *value); } else { let e = std::io::Error::new(std::io::ErrorKind::Other, "Mutex poisonous!"); return Err(Box::new(e)); } Ok(()) }
Implementations
Get state.
Trait Implementations
Auto Trait Implementations
impl<T> RefUnwindSafe for SyncState<T>
impl<T> UnwindSafe for SyncState<T>
Blanket Implementations
Mutably borrows from an owned value. Read more