Skip to content

Commit 6cb9fa4

Browse files
committed
Add atomic support for signed ints and 32-bit ints
1 parent c5e0b55 commit 6cb9fa4

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/generate/generic_atomic.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
mod atomic {
2-
use portable_atomic::{AtomicU16, AtomicU8, Ordering};
2+
use portable_atomic::Ordering;
33

44
pub trait AtomicOperations {
55
unsafe fn atomic_or(ptr: *mut Self, val: Self);
@@ -24,8 +24,17 @@ mod atomic {
2424
}
2525
};
2626
}
27-
impl_atomics!(u8, AtomicU8);
28-
impl_atomics!(u16, AtomicU16);
27+
28+
impl_atomics!(u8, portable_atomic::AtomicU8);
29+
impl_atomics!(i8, portable_atomic::AtomicI8);
30+
impl_atomics!(u16, portable_atomic::AtomicU16);
31+
impl_atomics!(i16, portable_atomic::AtomicI16);
32+
33+
// Exclude 16-bit archs from 32-bit atomics
34+
#[cfg(not(target_pointer_width = "16"))]
35+
impl_atomics!(u32, portable_atomic::AtomicU32);
36+
#[cfg(not(target_pointer_width = "16"))]
37+
impl_atomics!(i32, portable_atomic::AtomicI32);
2938
}
3039
use atomic::AtomicOperations;
3140

0 commit comments

Comments
 (0)