//! The [`CondVar`] abstraction and its implementations.
pub use PthreadCondVar;
use crateMutex;
/// A condition variable abstraction generic over its [`Mutex`].
///
/// It is mostly a building block for [`CondVarParker`](super::parker::CondVarParker).
///
/// # Safety
///
/// [`wait`](Self::wait) must return with `mutex` locked by the current thread, and the returned
/// guard must be a valid guard for it.
///
/// Calls to [`notify_one`](Self::notify_one) must *synchronize-with* the
/// [`wait`](Self::wait) calls they wake up.
pub unsafe