#![cfg_attr(loom, allow(dead_code, unreachable_pub, unused_imports))]
cfg_sync! {
mod barrier;
pub use barrier::{Barrier, BarrierWaitResult};
pub mod mpsc;
mod mutex;
pub use mutex::{Mutex, MutexGuard};
pub mod oneshot;
pub(crate) mod semaphore;
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;
}
}
#[cfg(test)]
mod tests;