Add more from the std
This commit is contained in:
@@ -1,40 +0,0 @@
|
||||
// A "once" is a relatively simple primitive, and it's also typically provided
|
||||
// by the OS as well (see `pthread_once` or `InitOnceExecuteOnce`). The OS
|
||||
// primitives, however, tend to have surprising restrictions, such as the Unix
|
||||
// one doesn't allow an argument to be passed to the function.
|
||||
//
|
||||
// As a result, we end up implementing it ourselves in the standard library.
|
||||
// This also gives us the opportunity to optimize the implementation a bit which
|
||||
// should help the fast path on call sites.
|
||||
|
||||
cfg_select! {
|
||||
any(
|
||||
all(target_os = "windows", not(target_vendor="win7")),
|
||||
target_os = "linux",
|
||||
target_os = "android",
|
||||
all(target_family = "wasm", target_feature = "atomics"),
|
||||
target_os = "freebsd",
|
||||
target_os = "motor",
|
||||
target_os = "openbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "fuchsia",
|
||||
target_os = "hermit",
|
||||
) => {
|
||||
mod futex;
|
||||
pub use futex::{Once, OnceState};
|
||||
}
|
||||
any(
|
||||
windows,
|
||||
target_family = "unix",
|
||||
all(target_vendor = "fortanix", target_env = "sgx"),
|
||||
target_os = "solid_asp3",
|
||||
target_os = "xous",
|
||||
) => {
|
||||
mod queue;
|
||||
pub use queue::{Once, OnceState};
|
||||
}
|
||||
_ => {
|
||||
mod no_threads;
|
||||
pub use no_threads::{Once, OnceState};
|
||||
}
|
||||
}
|
||||
1
library/std/src/sys/sync/once/mod.rs
Symbolic link
1
library/std/src/sys/sync/once/mod.rs
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/julien/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/sync/once/mod.rs
|
||||
Reference in New Issue
Block a user