diff --git a/library/std/src/sys/hermit/condvar.rs b/library/std/src/sys/hermit/condvar.rs index b62f21a9dac..f6083530005 100644 --- a/library/std/src/sys/hermit/condvar.rs +++ b/library/std/src/sys/hermit/condvar.rs @@ -2,7 +2,7 @@ use crate::ffi::c_void; use crate::ptr; use crate::sync::atomic::{AtomicUsize, Ordering::SeqCst}; use crate::sys::hermit::abi; -use crate::sys::mutex::Mutex; +use crate::sys::locks::Mutex; use crate::time::Duration; // The implementation is inspired by Andrew D. Birrell's paper diff --git a/library/std/src/sys/hermit/mod.rs b/library/std/src/sys/hermit/mod.rs index b798c97448b..08eca423802 100644 --- a/library/std/src/sys/hermit/mod.rs +++ b/library/std/src/sys/hermit/mod.rs @@ -22,14 +22,12 @@ pub mod alloc; pub mod args; #[path = "../unix/cmath.rs"] pub mod cmath; -pub mod condvar; pub mod env; pub mod fd; pub mod fs; #[path = "../unsupported/io.rs"] pub mod io; pub mod memchr; -pub mod mutex; pub mod net; pub mod os; #[path = "../unix/os_str.rs"] @@ -40,7 +38,6 @@ pub mod path; pub mod pipe; #[path = "../unsupported/process.rs"] pub mod process; -pub mod rwlock; pub mod stdio; pub mod thread; pub mod thread_local_dtor; @@ -48,6 +45,16 @@ pub mod thread_local_dtor; pub mod thread_local_key; pub mod time; +mod condvar; +mod mutex; +mod rwlock; + +pub mod locks { + pub use super::condvar::*; + pub use super::mutex::*; + pub use super::rwlock::*; +} + use crate::io::ErrorKind; #[allow(unused_extern_crates)] diff --git a/library/std/src/sys/hermit/rwlock.rs b/library/std/src/sys/hermit/rwlock.rs index 64eaa2fc482..1cca809764c 100644 --- a/library/std/src/sys/hermit/rwlock.rs +++ b/library/std/src/sys/hermit/rwlock.rs @@ -1,6 +1,5 @@ use crate::cell::UnsafeCell; -use crate::sys::condvar::Condvar; -use crate::sys::mutex::Mutex; +use crate::sys::locks::{Condvar, Mutex}; pub struct RWLock { lock: Mutex, diff --git a/library/std/src/sys/itron/condvar.rs b/library/std/src/sys/itron/condvar.rs index 2992a6a5429..ed26c528027 100644 --- a/library/std/src/sys/itron/condvar.rs +++ b/library/std/src/sys/itron/condvar.rs @@ -1,6 +1,6 @@ //! POSIX conditional variable implementation based on user-space wait queues. use super::{abi, error::expect_success_aborting, spin::SpinMutex, task, time::with_tmos_strong}; -use crate::{mem::replace, ptr::NonNull, sys::mutex::Mutex, time::Duration}; +use crate::{mem::replace, ptr::NonNull, sys::locks::Mutex, time::Duration}; // The implementation is inspired by the queue-based implementation shown in // Andrew D. Birrell's paper "Implementing Condition Variables with Semaphores" diff --git a/library/std/src/sys/sgx/condvar.rs b/library/std/src/sys/sgx/condvar.rs index 55ac052d975..c9736880b08 100644 --- a/library/std/src/sys/sgx/condvar.rs +++ b/library/std/src/sys/sgx/condvar.rs @@ -1,4 +1,4 @@ -use crate::sys::mutex::Mutex; +use crate::sys::locks::Mutex; use crate::time::Duration; use super::waitqueue::{SpinMutex, WaitQueue, WaitVariable}; diff --git a/library/std/src/sys/sgx/mod.rs b/library/std/src/sys/sgx/mod.rs index 158c92e7a77..1333edb9881 100644 --- a/library/std/src/sys/sgx/mod.rs +++ b/library/std/src/sys/sgx/mod.rs @@ -15,7 +15,6 @@ pub mod alloc; pub mod args; #[path = "../unix/cmath.rs"] pub mod cmath; -pub mod condvar; pub mod env; pub mod fd; #[path = "../unsupported/fs.rs"] @@ -23,7 +22,6 @@ pub mod fs; #[path = "../unsupported/io.rs"] pub mod io; pub mod memchr; -pub mod mutex; pub mod net; pub mod os; #[path = "../unix/os_str.rs"] @@ -33,12 +31,21 @@ pub mod path; pub mod pipe; #[path = "../unsupported/process.rs"] pub mod process; -pub mod rwlock; pub mod stdio; pub mod thread; pub mod thread_local_key; pub mod time; +mod condvar; +mod mutex; +mod rwlock; + +pub mod locks { + pub use super::condvar::*; + pub use super::mutex::*; + pub use super::rwlock::*; +} + // SAFETY: must be called only once during runtime initialization. // NOTE: this is not guaranteed to run, for example when Rust code is called externally. pub unsafe fn init(argc: isize, argv: *const *const u8) { diff --git a/library/std/src/sys/solid/mod.rs b/library/std/src/sys/solid/mod.rs index 049460755d6..492b1a55475 100644 --- a/library/std/src/sys/solid/mod.rs +++ b/library/std/src/sys/solid/mod.rs @@ -37,14 +37,21 @@ pub mod path; pub mod pipe; #[path = "../unsupported/process.rs"] pub mod process; -pub mod rwlock; pub mod stdio; -pub use self::itron::{condvar, mutex, thread}; +pub use self::itron::thread; pub mod memchr; pub mod thread_local_dtor; pub mod thread_local_key; pub mod time; +mod rwlock; + +pub mod locks { + pub use super::itron::condvar::*; + pub use super::itron::mutex::*; + pub use super::rwlock::*; +} + // SAFETY: must be called only once during runtime initialization. // NOTE: this is not guaranteed to run, for example when Rust code is called externally. pub unsafe fn init(_argc: isize, _argv: *const *const u8) {} diff --git a/library/std/src/sys/unsupported/condvar.rs b/library/std/src/sys/unsupported/locks/condvar.rs similarity index 95% rename from library/std/src/sys/unsupported/condvar.rs rename to library/std/src/sys/unsupported/locks/condvar.rs index 35d12a69c8a..8dbe03bad9b 100644 --- a/library/std/src/sys/unsupported/condvar.rs +++ b/library/std/src/sys/unsupported/locks/condvar.rs @@ -1,4 +1,4 @@ -use crate::sys::mutex::Mutex; +use crate::sys::locks::Mutex; use crate::time::Duration; pub struct Condvar {} diff --git a/library/std/src/sys/unsupported/locks/mod.rs b/library/std/src/sys/unsupported/locks/mod.rs new file mode 100644 index 00000000000..5634f106339 --- /dev/null +++ b/library/std/src/sys/unsupported/locks/mod.rs @@ -0,0 +1,6 @@ +mod condvar; +mod mutex; +mod rwlock; +pub use condvar::{Condvar, MovableCondvar}; +pub use mutex::{MovableMutex, Mutex, ReentrantMutex}; +pub use rwlock::{MovableRWLock, RWLock}; diff --git a/library/std/src/sys/unsupported/mutex.rs b/library/std/src/sys/unsupported/locks/mutex.rs similarity index 100% rename from library/std/src/sys/unsupported/mutex.rs rename to library/std/src/sys/unsupported/locks/mutex.rs diff --git a/library/std/src/sys/unsupported/rwlock.rs b/library/std/src/sys/unsupported/locks/rwlock.rs similarity index 100% rename from library/std/src/sys/unsupported/rwlock.rs rename to library/std/src/sys/unsupported/locks/rwlock.rs diff --git a/library/std/src/sys/unsupported/mod.rs b/library/std/src/sys/unsupported/mod.rs index a1276193bda..7bf6d40b76d 100644 --- a/library/std/src/sys/unsupported/mod.rs +++ b/library/std/src/sys/unsupported/mod.rs @@ -4,11 +4,10 @@ pub mod alloc; pub mod args; #[path = "../unix/cmath.rs"] pub mod cmath; -pub mod condvar; pub mod env; pub mod fs; pub mod io; -pub mod mutex; +pub mod locks; pub mod net; pub mod os; #[path = "../unix/os_str.rs"] @@ -17,7 +16,6 @@ pub mod os_str; pub mod path; pub mod pipe; pub mod process; -pub mod rwlock; pub mod stdio; pub mod thread; #[cfg(target_thread_local)] diff --git a/library/std/src/sys/wasi/mod.rs b/library/std/src/sys/wasi/mod.rs index f878941939c..683a07a34dc 100644 --- a/library/std/src/sys/wasi/mod.rs +++ b/library/std/src/sys/wasi/mod.rs @@ -22,14 +22,12 @@ pub mod alloc; pub mod args; #[path = "../unix/cmath.rs"] pub mod cmath; -#[path = "../unsupported/condvar.rs"] -pub mod condvar; pub mod env; pub mod fd; pub mod fs; pub mod io; -#[path = "../unsupported/mutex.rs"] -pub mod mutex; +#[path = "../unsupported/locks/mod.rs"] +pub mod locks; pub mod net; pub mod os; #[path = "../unix/os_str.rs"] @@ -40,8 +38,6 @@ pub mod path; pub mod pipe; #[path = "../unsupported/process.rs"] pub mod process; -#[path = "../unsupported/rwlock.rs"] -pub mod rwlock; pub mod stdio; pub mod thread; #[path = "../unsupported/thread_local_dtor.rs"] diff --git a/library/std/src/sys/wasm/atomics/condvar.rs b/library/std/src/sys/wasm/atomics/condvar.rs index 0c1c076cc91..f06c07c5409 100644 --- a/library/std/src/sys/wasm/atomics/condvar.rs +++ b/library/std/src/sys/wasm/atomics/condvar.rs @@ -2,7 +2,7 @@ use crate::arch::wasm32; use crate::cmp; use crate::mem; use crate::sync::atomic::{AtomicUsize, Ordering::SeqCst}; -use crate::sys::mutex::Mutex; +use crate::sys::locks::Mutex; use crate::time::Duration; pub struct Condvar { diff --git a/library/std/src/sys/wasm/atomics/rwlock.rs b/library/std/src/sys/wasm/atomics/rwlock.rs index 64eaa2fc482..1cca809764c 100644 --- a/library/std/src/sys/wasm/atomics/rwlock.rs +++ b/library/std/src/sys/wasm/atomics/rwlock.rs @@ -1,6 +1,5 @@ use crate::cell::UnsafeCell; -use crate::sys::condvar::Condvar; -use crate::sys::mutex::Mutex; +use crate::sys::locks::{Condvar, Mutex}; pub struct RWLock { lock: Mutex, diff --git a/library/std/src/sys/wasm/mod.rs b/library/std/src/sys/wasm/mod.rs index c81d653a5e3..9f6700caf14 100644 --- a/library/std/src/sys/wasm/mod.rs +++ b/library/std/src/sys/wasm/mod.rs @@ -50,22 +50,23 @@ pub mod time; cfg_if::cfg_if! { if #[cfg(target_feature = "atomics")] { #[path = "atomics/condvar.rs"] - pub mod condvar; + mod condvar; #[path = "atomics/mutex.rs"] - pub mod mutex; + mod mutex; #[path = "atomics/rwlock.rs"] - pub mod rwlock; + mod rwlock; + pub mod locks { + pub use super::condvar::*; + pub use super::mutex::*; + pub use super::rwlock::*; + } #[path = "atomics/futex.rs"] pub mod futex; #[path = "atomics/thread.rs"] pub mod thread; } else { - #[path = "../unsupported/condvar.rs"] - pub mod condvar; - #[path = "../unsupported/mutex.rs"] - pub mod mutex; - #[path = "../unsupported/rwlock.rs"] - pub mod rwlock; + #[path = "../unsupported/locks/mod.rs"] + pub mod locks; #[path = "../unsupported/thread.rs"] pub mod thread; } diff --git a/library/std/src/sys/windows/condvar.rs b/library/std/src/sys/windows/locks/condvar.rs similarity index 93% rename from library/std/src/sys/windows/condvar.rs rename to library/std/src/sys/windows/locks/condvar.rs index 44547a5c51a..dfd8cfdceee 100644 --- a/library/std/src/sys/windows/condvar.rs +++ b/library/std/src/sys/windows/locks/condvar.rs @@ -1,6 +1,6 @@ use crate::cell::UnsafeCell; use crate::sys::c; -use crate::sys::mutex::{self, Mutex}; +use crate::sys::locks::{mutex, Mutex}; use crate::sys::os; use crate::time::Duration; @@ -31,7 +31,7 @@ impl Condvar { let r = c::SleepConditionVariableSRW( self.inner.get(), mutex::raw(mutex), - super::dur2timeout(dur), + crate::sys::windows::dur2timeout(dur), 0, ); if r == 0 { diff --git a/library/std/src/sys/windows/locks/mod.rs b/library/std/src/sys/windows/locks/mod.rs new file mode 100644 index 00000000000..5634f106339 --- /dev/null +++ b/library/std/src/sys/windows/locks/mod.rs @@ -0,0 +1,6 @@ +mod condvar; +mod mutex; +mod rwlock; +pub use condvar::{Condvar, MovableCondvar}; +pub use mutex::{MovableMutex, Mutex, ReentrantMutex}; +pub use rwlock::{MovableRWLock, RWLock}; diff --git a/library/std/src/sys/windows/mutex.rs b/library/std/src/sys/windows/locks/mutex.rs similarity index 100% rename from library/std/src/sys/windows/mutex.rs rename to library/std/src/sys/windows/locks/mutex.rs diff --git a/library/std/src/sys/windows/rwlock.rs b/library/std/src/sys/windows/locks/rwlock.rs similarity index 100% rename from library/std/src/sys/windows/rwlock.rs rename to library/std/src/sys/windows/locks/rwlock.rs diff --git a/library/std/src/sys/windows/mod.rs b/library/std/src/sys/windows/mod.rs index 6097e628768..62814eaaa56 100644 --- a/library/std/src/sys/windows/mod.rs +++ b/library/std/src/sys/windows/mod.rs @@ -16,13 +16,12 @@ pub mod alloc; pub mod args; pub mod c; pub mod cmath; -pub mod condvar; pub mod env; pub mod fs; pub mod handle; pub mod io; +pub mod locks; pub mod memchr; -pub mod mutex; pub mod net; pub mod os; pub mod os_str; @@ -30,7 +29,6 @@ pub mod path; pub mod pipe; pub mod process; pub mod rand; -pub mod rwlock; pub mod thread; pub mod thread_local_dtor; pub mod thread_local_key;