futures_intrusive/sync/
mod.rs

1//! Asynchronous synchronization primitives based on intrusive collections.
2//!
3//! This module provides various primitives for synchronizing concurrently
4//! executing futures.
5
6mod manual_reset_event;
7
8pub use self::manual_reset_event::{
9    GenericManualResetEvent, GenericWaitForEventFuture, LocalManualResetEvent,
10    LocalWaitForEventFuture,
11};
12
13#[cfg(feature = "std")]
14pub use self::manual_reset_event::{ManualResetEvent, WaitForEventFuture};
15
16mod mutex;
17
18pub use self::mutex::{
19    GenericMutex, GenericMutexGuard, GenericMutexLockFuture, LocalMutex,
20    LocalMutexGuard, LocalMutexLockFuture,
21};
22
23#[cfg(feature = "std")]
24pub use self::mutex::{Mutex, MutexGuard, MutexLockFuture};
25
26mod semaphore;
27
28pub use self::semaphore::{
29    GenericSemaphore, GenericSemaphoreAcquireFuture, GenericSemaphoreReleaser,
30    LocalSemaphore, LocalSemaphoreAcquireFuture, LocalSemaphoreReleaser,
31};
32
33#[cfg(feature = "alloc")]
34pub use self::semaphore::{
35    GenericSharedSemaphore, GenericSharedSemaphoreAcquireFuture,
36    GenericSharedSemaphoreReleaser,
37};
38
39#[cfg(feature = "std")]
40pub use self::semaphore::{
41    Semaphore, SemaphoreAcquireFuture, SemaphoreReleaser, SharedSemaphore,
42    SharedSemaphoreAcquireFuture, SharedSemaphoreReleaser,
43};