pub struct ManualResetEvent { /* private fields */ }Expand description
A ManualResetEvent
An event represents a boolean condition that can be waited on until signaled. This allows a thread to block and wait for another thread to set the event. Until the event is manually reset waiting will return immediately.
§Examples
use std::thread;
use std::time::Duration;
use win_events::{Event, ManualResetEvent};
let evt_started = ManualResetEvent::new(false);
let evt_started2 = evt_started.clone();
// spawn a thread and set the cloned event
thread::spawn(move|| {
evt_started2.set();
});
// Wait for the started event
evt_started.wait(Duration::from_millis(100)).unwrap();Implementations§
Source§impl ManualResetEvent
impl ManualResetEvent
Sourcepub fn new(init: bool) -> ManualResetEvent
pub fn new(init: bool) -> ManualResetEvent
Creates a new ManualResetEvent and initialized the value.
§Examples
use win_events::ManualResetEvent;
let evt = ManualResetEvent::new(false);Sourcepub fn is_set(&self) -> bool
pub fn is_set(&self) -> bool
Gets the current state of the event.
§Examples
use win_events::ManualResetEvent;
let evt = ManualResetEvent::new(true);
assert!(evt.is_set())Sourcepub fn set(&self)
pub fn set(&self)
Sets the event and fires a signal to any threads waiting on the event.
§Examples
use win_events::ManualResetEvent;
let evt = ManualResetEvent::new(false);
evt.set();
assert!(evt.is_set())Sourcepub fn clear(&self)
pub fn clear(&self)
Sets the even, causing any waiting threads to receive a signal.
§Examples
use win_events::ManualResetEvent;
let evt = ManualResetEvent::new(false);
evt.clear();
assert!(!evt.is_set())Sourcepub fn wait(&self, dur: Duration) -> Result<bool, Box<dyn Error>>
pub fn wait(&self, dur: Duration) -> Result<bool, Box<dyn Error>>
Creates a new ManualResetEvent and initialized the value.
§Examples
use std::thread::{sleep, spawn};
use std::time::Duration;
use win_events::ManualResetEvent;
let evt = ManualResetEvent::new(false);
let evt_inner = evt.clone();
let worker = spawn(move || {
sleep(Duration::from_millis(3));
evt_inner.set()
});
let wait_result = evt.wait(Duration::from_millis(100)).unwrap();
assert!(wait_result)Trait Implementations§
Source§impl Clone for ManualResetEvent
impl Clone for ManualResetEvent
Source§fn clone(&self) -> ManualResetEvent
fn clone(&self) -> ManualResetEvent
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ManualResetEvent
impl !RefUnwindSafe for ManualResetEvent
impl Send for ManualResetEvent
impl Sync for ManualResetEvent
impl Unpin for ManualResetEvent
impl !UnwindSafe for ManualResetEvent
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