blob: 0edb46cc10f867ba1479b45381877b3a58b95339 [file]
cfg_select! {
any(
target_os = "linux",
target_os = "android",
all(target_os = "emscripten", target_feature = "atomics"),
target_os = "freebsd",
target_os = "openbsd",
target_os = "dragonfly",
target_os = "fuchsia",
) => {
mod unix;
pub use unix::*;
}
all(target_os = "windows", not(target_vendor = "win7")) => {
mod windows;
pub use windows::*;
}
target_os = "hermit" => {
mod hermit;
pub use hermit::*;
}
// The wasi-libc based futex is new enough that it's not present in older
// wasi-libc builds. For now that means it's only required on wasip3 (which
// requires a newer wasi-libc anyway). In the future this'll probably switch to
// unconditionally using `wasilibc` as the implementation for all WASI
// targets (and switching all synchronization primitives to the futex version).
all(target_os = "wasi", target_env = "p3") => {
mod wasilibc;
pub use wasilibc::*;
}
all(target_family = "wasm", target_feature = "atomics") => {
mod wasm;
pub use wasm::*;
}
target_os = "motor" => {
pub use moto_rt::futex::*;
}
_ => {}
}