| 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 | |