cfg_select! {
    any(
        all(target_os = "windows", not(target_vendor = "win7")),
        target_os = "linux",
        target_os = "android",
        target_os = "freebsd",
        target_os = "openbsd",
        target_os = "motor",
        target_os = "dragonfly",
        all(target_family = "wasm", target_feature = "atomics"),
        target_os = "hermit",
        all(target_os = "wasi", target_env = "p3"),
    ) => {
        mod futex;
        pub use futex::Mutex;
    }
    target_os = "fuchsia" => {
        mod fuchsia;
        pub use fuchsia::Mutex;
    }
    any(target_family = "unix", target_os = "teeos") => {
        mod pthread;
        pub use pthread::Mutex;
    }
    all(target_os = "windows", target_vendor = "win7") => {
        mod windows7;
        pub use windows7::{Mutex, raw};
    }
    all(target_vendor = "fortanix", target_env = "sgx") => {
        mod sgx;
        pub use sgx::Mutex;
    }
    target_os = "solid_asp3" => {
        mod itron;
        pub use itron::Mutex;
    }
    target_os = "xous" => {
        mod xous;
        pub use xous::Mutex;
    }
    _ => {
        mod no_threads;
        pub use no_threads::Mutex;
    }
}
