1//! Thread synchronization primitives.
2//!
3//! * [`Parker`], a thread parking primitive.
4//! * [`ShardedLock`], a sharded reader-writer lock with fast concurrent reads.
5//! * [`WaitGroup`], for synchronizing the beginning or end of some computation.
6
7#[cfg(not(crossbeam_loom))]
8mod once_lock;
9mod parker;
10#[cfg(not(crossbeam_loom))]
11mod sharded_lock;
12mod wait_group;
13
14pub use self::parker::{Parker, Unparker};
15#[cfg(not(crossbeam_loom))]
16pub use self::sharded_lock::{ShardedLock, ShardedLockReadGuard, ShardedLockWriteGuard};
17pub use self::wait_group::WaitGroup;
18