pub struct ThreadSafeStruct<T> {
pub value: Mutex<Option<T>>,
}
Fields§
§value: Mutex<Option<T>>
Implementations§
Source§impl<T> ThreadSafeStruct<T>
impl<T> ThreadSafeStruct<T>
Sourcepub fn with(
&self,
action: impl FnOnce(&mut T),
) -> Result<(), ThreadSafeStructError>
pub fn with( &self, action: impl FnOnce(&mut T), ) -> Result<(), ThreadSafeStructError>
Borrows the value from the mutex, mutably in order to work with/on
Sourcepub fn set(&self, value: Option<T>)
pub fn set(&self, value: Option<T>)
Sets the mutex to a value or None
This provides no guarantee that other threads don’t change it straight away
so if you call with()
after value may have changed
I.e. two threads, one calls set, the other calls with
set
thread wins, and the with
thread waits for the lock
as soon as thread set
finishes, thread with
will do its thing
Auto Trait Implementations§
impl<T> !Freeze for ThreadSafeStruct<T>
impl<T> RefUnwindSafe for ThreadSafeStruct<T>
impl<T> Send for ThreadSafeStruct<T>where
T: Send,
impl<T> Sync for ThreadSafeStruct<T>where
T: Send,
impl<T> Unpin for ThreadSafeStruct<T>where
T: Unpin,
impl<T> UnwindSafe for ThreadSafeStruct<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more