about summary refs log tree commit diff
path: root/library/std/src/sys/sync/thread_parking/mod.rs
blob: b9fb27b4eef2d48a7c8a556a2008f07986b949b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
cfg_select! {
    any(
        all(target_os = "windows", not(target_vendor = "win7")),
        target_os = "linux",
        target_os = "android",
        all(target_arch = "wasm32", target_feature = "atomics"),
        target_os = "freebsd",
        target_os = "openbsd",
        target_os = "dragonfly",
        target_os = "fuchsia",
        target_os = "hermit",
    ) => {
        mod futex;
        pub use futex::Parker;
    }
    any(
        target_os = "netbsd",
        all(target_vendor = "fortanix", target_env = "sgx"),
        target_os = "solid_asp3",
    ) => {
        mod id;
        pub use id::Parker;
    }
    target_vendor = "win7" => {
        mod windows7;
        pub use windows7::Parker;
    }
    all(target_vendor = "apple", not(miri)) => {
        // Doesn't work in Miri, see <https://github.com/rust-lang/miri/issues/2589>.
        mod darwin;
        pub use darwin::Parker;
    }
    target_os = "xous" => {
        mod xous;
        pub use xous::Parker;
    }
    target_family = "unix" => {
        mod pthread;
        pub use pthread::Parker;
    }
    _ => {
        mod unsupported;
        pub use unsupported::Parker;
    }
}