This PR replaces the `LazyBox` wrapper used to allocate the pthread primitives with `OnceBox`, which has a more familiar API mirroring that of `OnceLock`. This cleans up the code in preparation for larger changes like #128184 (from which this PR was split) and allows some neat optimizations, like avoid an acquire-load of the allocation pointer in `Mutex::unlock`, where the initialization of the allocation must have already been observed. Additionally, I've gotten rid of the TEEOS `Condvar` code, it's just a duplicate of the pthread one anyway and I didn't want to repeat myself.
14 lines
290 B
Rust
14 lines
290 B
Rust
mod condvar;
|
|
mod mutex;
|
|
mod once;
|
|
mod once_box;
|
|
mod rwlock;
|
|
mod thread_parking;
|
|
|
|
pub use condvar::Condvar;
|
|
pub use mutex::Mutex;
|
|
pub use once::{Once, OnceState};
|
|
#[allow(unused)] // Only used on some platforms.
|
|
use once_box::OnceBox;
|
|
pub use rwlock::RwLock;
|
|
pub use thread_parking::Parker;
|