wgpu_sync/
atomic.rs

1//! Provides items for atomic operations.
2
3pub use core::sync::atomic::{compiler_fence, fence, Ordering};
4
5cfg_if::cfg_if! {
6    if #[cfg(target_has_atomic = "ptr")] {
7        pub use core::sync::atomic::{AtomicIsize, AtomicPtr, AtomicUsize};
8    } else if #[cfg(feature = "portable-atomic")] {
9        pub use portable_atomic::{AtomicIsize, AtomicPtr, AtomicUsize};
10    }
11}
12
13cfg_if::cfg_if! {
14    if #[cfg(target_has_atomic = "64")] {
15        pub use core::sync::atomic::{AtomicI64, AtomicU64};
16    } else if #[cfg(feature = "portable-atomic")] {
17        pub use portable_atomic::{AtomicI64, AtomicU64};
18    }
19}
20
21cfg_if::cfg_if! {
22    if #[cfg(target_has_atomic = "32")] {
23        pub use core::sync::atomic::{AtomicI32, AtomicU32};
24    } else if #[cfg(feature = "portable-atomic")] {
25        pub use portable_atomic::{AtomicI32, AtomicU32};
26    }
27}
28
29cfg_if::cfg_if! {
30    if #[cfg(target_has_atomic = "16")] {
31        pub use core::sync::atomic::{AtomicI16, AtomicU16};
32    } else if #[cfg(feature = "portable-atomic")] {
33        pub use portable_atomic::{AtomicI16, AtomicU16};
34    }
35}
36
37cfg_if::cfg_if! {
38    if #[cfg(target_has_atomic = "8")] {
39        pub use core::sync::atomic::{AtomicBool, AtomicI8, AtomicU8};
40    } else if #[cfg(feature = "portable-atomic")] {
41        pub use portable_atomic::{AtomicBool, AtomicI8, AtomicU8};
42    }
43}