pub struct ManualResetEventPair { /* private fields */ }Expand description
A ManualResetEventPair
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, ManualResetEventPair};
let evt_started = ManualResetEventPair::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 ManualResetEventPair
impl ManualResetEventPair
Sourcepub fn new(init: bool) -> ManualResetEventPair
pub fn new(init: bool) -> ManualResetEventPair
Creates a new ManualResetEventPair which can create events to wait on internally on both set and not set
§Examples
use win_events::ManualResetEventPair;
let evt = ManualResetEventPair::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::ManualResetEventPair;
let evt = ManualResetEventPair::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::ManualResetEventPair;
let evt = ManualResetEventPair::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::ManualResetEventPair;
let evt = ManualResetEventPair::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 ManualResetEventPair and initialized the value.
§Examples
use std::thread::{sleep, spawn};
use std::time::Duration;
use win_events::ManualResetEventPair;
let evt = ManualResetEventPair::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);
worker.join();Sourcepub fn event_set(&self) -> ManualResetEventPair
pub fn event_set(&self) -> ManualResetEventPair
Creates an event that will wait on the state to be set
§Examples
use std::thread::{sleep, spawn};
use std::time::Duration;
use win_events::ManualResetEventPair;
let evt = ManualResetEventPair::new(false);
let event_set = evt.event_set();
let worker = spawn(move || {
sleep(Duration::from_millis(3));
evt.set()
});
let wait_result = event_set.wait(Duration::from_millis(100)).unwrap();
assert!(wait_result);
worker.join();Sourcepub fn event_not_set(&self) -> ManualResetEventPair
pub fn event_not_set(&self) -> ManualResetEventPair
Creates an event that will wait on the state to be set
§Examples
use std::thread::{sleep, spawn};
use std::time::Duration;
use win_events::ManualResetEventPair;
let evt = ManualResetEventPair::new(true);
let event_not_set = evt.event_not_set();
let worker = spawn(move || {
sleep(Duration::from_millis(3));
evt.clear()
});
let wait_result = event_not_set.wait(Duration::from_millis(100)).unwrap();
assert!(wait_result);
worker.join();Trait Implementations§
Source§impl Clone for ManualResetEventPair
impl Clone for ManualResetEventPair
Source§fn clone(&self) -> ManualResetEventPair
fn clone(&self) -> ManualResetEventPair
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 ManualResetEventPair
impl !RefUnwindSafe for ManualResetEventPair
impl Send for ManualResetEventPair
impl Sync for ManualResetEventPair
impl Unpin for ManualResetEventPair
impl !UnwindSafe for ManualResetEventPair
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