Mutex and Condvar are being replaced by more efficient implementations, which need thread parking themselves (see #93740). Therefore use the pthread synchronization primitives directly. Also, avoid allocating because the Parker struct is being placed in an Arc anyways.
18 lines
477 B
Rust
18 lines
477 B
Rust
cfg_if::cfg_if! {
|
|
if #[cfg(any(
|
|
target_os = "linux",
|
|
target_os = "android",
|
|
all(target_arch = "wasm32", target_feature = "atomics"),
|
|
))] {
|
|
mod futex;
|
|
pub use futex::Parker;
|
|
} else if #[cfg(windows)] {
|
|
pub use crate::sys::thread_parker::Parker;
|
|
} else if #[cfg(target_family = "unix")] {
|
|
pub use crate::sys::thread_parker::Parker;
|
|
} else {
|
|
mod generic;
|
|
pub use generic::Parker;
|
|
}
|
|
}
|