1 // Copyright 2016 Amanieu d'Antras
3 // Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
4 // http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
5 // http://opensource.org/licenses/MIT>, at your option. This file may not be
6 // copied, modified, or distributed except according to those terms.
8 //! This library provides implementations of `Mutex`, `RwLock`, `Condvar` and
9 //! `Once` that are smaller, faster and more flexible than those in the Rust
10 //! standard library. It also provides a `ReentrantMutex` type.
12 #![warn(missing_docs)]
13 #![warn(rust_2018_idioms)]
14 #![cfg_attr(feature = "nightly", feature(llvm_asm))]
28 #[cfg(feature = "deadlock_detection")]
30 #[cfg(not(feature = "deadlock_detection"))]
33 pub use self::condvar
::{Condvar, WaitTimeoutResult}
;
34 pub use self::fair_mutex
::{const_fair_mutex, FairMutex, FairMutexGuard, MappedFairMutexGuard}
;
35 pub use self::mutex
::{const_mutex, MappedMutexGuard, Mutex, MutexGuard}
;
36 pub use self::once
::{Once, OnceState}
;
37 pub use self::raw_fair_mutex
::RawFairMutex
;
38 pub use self::raw_mutex
::RawMutex
;
39 pub use self::raw_rwlock
::RawRwLock
;
40 pub use self::remutex
::{
41 const_reentrant_mutex
, MappedReentrantMutexGuard
, RawThreadId
, ReentrantMutex
,
44 pub use self::rwlock
::{
45 const_rwlock
, MappedRwLockReadGuard
, MappedRwLockWriteGuard
, RwLock
, RwLockReadGuard
,
46 RwLockUpgradableReadGuard
, RwLockWriteGuard
,