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