Path: blob/main/crates/bevy_platform/src/sync/atomic.rs
6849 views
//! Provides various atomic alternatives to language primitives.1//!2//! Certain platforms lack complete atomic support, requiring the use of a fallback3//! such as `portable-atomic`.4//! Using these types will ensure the correct atomic provider is used without the need for5//! feature gates in your own code.67pub use atomic_16::{AtomicI16, AtomicU16};8pub use atomic_32::{AtomicI32, AtomicU32};9pub use atomic_64::{AtomicI64, AtomicU64};10pub use atomic_8::{AtomicBool, AtomicI8, AtomicU8};11pub use atomic_ptr::{AtomicIsize, AtomicPtr, AtomicUsize};12pub use core::sync::atomic::Ordering;1314#[cfg(target_has_atomic = "8")]15use core::sync::atomic as atomic_8;1617#[cfg(not(target_has_atomic = "8"))]18use portable_atomic as atomic_8;1920#[cfg(target_has_atomic = "16")]21use core::sync::atomic as atomic_16;2223#[cfg(not(target_has_atomic = "16"))]24use portable_atomic as atomic_16;2526#[cfg(target_has_atomic = "32")]27use core::sync::atomic as atomic_32;2829#[cfg(not(target_has_atomic = "32"))]30use portable_atomic as atomic_32;3132#[cfg(target_has_atomic = "64")]33use core::sync::atomic as atomic_64;3435#[cfg(not(target_has_atomic = "64"))]36use portable_atomic as atomic_64;3738#[cfg(target_has_atomic = "ptr")]39use core::sync::atomic as atomic_ptr;4041#[cfg(not(target_has_atomic = "ptr"))]42use portable_atomic as atomic_ptr;434445