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