Expand description
Async manual-reset and auto-reset events for multi-use signaling.
This crate provides two families of event primitives:
- Manual-reset events (
ManualResetEvent,LocalManualResetEvent) — a gate that, once set, releases all current and future awaiters until explicitly reset viareset(). - Auto-reset events (
AutoResetEvent,LocalAutoResetEvent) — a token dispenser that releases exactly one awaiter perset()call.
Each family comes in a thread-safe variant (Send + Sync) and a
single-threaded Local variant for improved efficiency when thread safety
is not required.
Events are lightweight cloneable handles. All clones from the same family share the same underlying state.
§Manual-reset example
use events::ManualResetEvent;
#[tokio::main]
async fn main() {
let event = ManualResetEvent::boxed();
let setter = event.clone();
// Producer opens the gate from a background task.
tokio::spawn(async move {
setter.set();
});
// Consumer waits for the gate to open.
event.wait().await;
// The gate stays open — it must be explicitly closed.
assert!(event.try_wait());
}§Auto-reset example
use events::AutoResetEvent;
#[tokio::main]
async fn main() {
let event = AutoResetEvent::boxed();
let setter = event.clone();
// Producer signals from a background task.
tokio::spawn(async move {
setter.set();
});
// Consumer waits for the signal.
event.wait().await;
// Signal was consumed.
assert!(!event.try_wait());
}Modules§
- futures
- Future types returned by event
wait()methods.
Structs§
- Auto
Reset Event - Thread-safe async auto-reset event.
- Embedded
Auto Reset Event - Embedded-state container for
AutoResetEvent. - Embedded
Local Auto Reset Event - Embedded-state container for
LocalAutoResetEvent. - Embedded
Local Manual Reset Event - Embedded-state container for
LocalManualResetEvent. - Embedded
Manual Reset Event - Embedded-state container for
ManualResetEvent. - Local
Auto Reset Event - Single-threaded async auto-reset event.
- Local
Manual Reset Event - Single-threaded async manual-reset event.
- Manual
Reset Event - Thread-safe async manual-reset event.
- RawAuto
Reset Event - Handle to an embedded
AutoResetEvent. - RawLocal
Auto Reset Event - Handle to an embedded
LocalAutoResetEvent. - RawLocal
Manual Reset Event - Handle to an embedded
LocalManualResetEvent. - RawManual
Reset Event - Handle to an embedded
ManualResetEvent.