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" ))] |
9 | pub(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" )))] |
13 | pub use self::bilock::{BiLock, BiLockAcquire, BiLockGuard, ReuniteError}; |
14 | #[cfg_attr (target_os = "none" , cfg(target_has_atomic = "ptr" ))] |
15 | #[cfg (feature = "std" )] |
16 | pub 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))] |
24 | mod bilock; |
25 | #[cfg_attr (target_os = "none" , cfg(target_has_atomic = "ptr" ))] |
26 | #[cfg (feature = "std" )] |
27 | mod mutex; |
28 | |