diff options
Diffstat (limited to '')
-rw-r--r-- | src/test_helpers.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/test_helpers.rs b/src/test_helpers.rs index 8967f3fb..35956ab5 100644 --- a/src/test_helpers.rs +++ b/src/test_helpers.rs @@ -1,23 +1,23 @@ macro_rules! droppable { () => { + static COUNT: core::sync::atomic::AtomicI32 = core::sync::atomic::AtomicI32::new(0); + #[derive(Eq, Ord, PartialEq, PartialOrd)] struct Droppable(i32); impl Droppable { fn new() -> Self { - unsafe { - COUNT += 1; - Droppable(COUNT) - } + COUNT.fetch_add(1, core::sync::atomic::Ordering::Relaxed); + Droppable(Self::count()) + } + + fn count() -> i32 { + COUNT.load(core::sync::atomic::Ordering::Relaxed) } } impl Drop for Droppable { fn drop(&mut self) { - unsafe { - COUNT -= 1; - } + COUNT.fetch_sub(1, core::sync::atomic::Ordering::Relaxed); } } - - static mut COUNT: i32 = 0; }; } |