1//! Futures-powered synchronization primitives.
2//!
3//! This module is only available when the `std` or `alloc` feature of this
4//! library is activated, and it is activated by default.
5
6#[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))]
7#[cfg(any(feature = "sink", feature = "io"))]
8#[cfg(not(feature = "bilock"))]
9pub(crate) use self::bilock::BiLock;
10#[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))]
11#[cfg(feature = "bilock")]
12#[cfg_attr(docsrs, doc(cfg(feature = "bilock")))]
13pub use self::bilock::{BiLock, BiLockAcquire, BiLockGuard, ReuniteError};
14#[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))]
15#[cfg(feature = "std")]
16pub use self::mutex::{
17 MappedMutexGuard, Mutex, MutexGuard, MutexLockFuture, OwnedMutexGuard, OwnedMutexLockFuture,
18};
19
20#[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))]
21#[cfg(any(feature = "bilock", feature = "sink", feature = "io"))]
22#[cfg_attr(docsrs, doc(cfg(feature = "bilock")))]
23#[cfg_attr(not(feature = "bilock"), allow(unreachable_pub))]
24mod bilock;
25#[cfg_attr(target_os = "none", cfg(target_has_atomic = "ptr"))]
26#[cfg(feature = "std")]
27mod mutex;
28