#![cfg_attr(loom, allow(dead_code, unreachable_pub, unused_imports))]
cfg_sync! {
mod barrier;
pub use barrier::{Barrier, BarrierWaitResult};
pub mod broadcast;
pub mod mpsc;
mod mutex;
pub use mutex::{Mutex, MutexGuard};
pub mod oneshot;
pub(crate) mod semaphore_ll;
mod semaphore;
pub use semaphore::{Semaphore, SemaphorePermit};
mod rwlock;
pub use rwlock::{RwLock, RwLockReadGuard, RwLockWriteGuard};
mod task;
pub(crate) use task::AtomicWaker;
pub mod watch;
}
cfg_not_sync! {
cfg_atomic_waker_impl! {
mod task;
pub(crate) use task::AtomicWaker;
}
#[cfg(any(
feature = "rt-core",
feature = "process",
feature = "signal"))]
pub(crate) mod oneshot;
cfg_signal! {
pub(crate) mod mpsc;
pub(crate) mod semaphore_ll;
}
}
#[cfg(test)]
mod tests;