about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaybe Waffle <waffle.lapkin@gmail.com>2023-04-06 18:05:59 +0000
committerMaybe Waffle <waffle.lapkin@gmail.com>2023-04-06 18:13:07 +0000
commit2733c29bb1a385779c1d74dbce96180799e15e56 (patch)
treee015bd6679cb2393819761cc6cfbcad7f9b96f6d
parente0e39caf842579230bc73d2d32c1e293ca55efcb (diff)
downloadrust-2733c29bb1a385779c1d74dbce96180799e15e56.tar.gz
rust-2733c29bb1a385779c1d74dbce96180799e15e56.zip
Support multithreaded mode in `OwnedSlice` tests
-rw-r--r--compiler/rustc_data_structures/src/owned_slice/tests.rs22
1 files changed, 14 insertions, 8 deletions
diff --git a/compiler/rustc_data_structures/src/owned_slice/tests.rs b/compiler/rustc_data_structures/src/owned_slice/tests.rs
index fe4173f422a..e715fb55362 100644
--- a/compiler/rustc_data_structures/src/owned_slice/tests.rs
+++ b/compiler/rustc_data_structures/src/owned_slice/tests.rs
@@ -1,4 +1,10 @@
-use std::{cell::Cell, ops::Deref, rc::Rc};
+use std::{
+    ops::Deref,
+    sync::{
+        atomic::{self, AtomicBool},
+        Arc,
+    },
+};
 
 use crate::{
     owned_slice::{slice_owned, try_slice_owned, OwnedSlice},
@@ -47,18 +53,18 @@ fn boxed() {
 }
 
 #[test]
-fn drop() {
-    let flag = Rc::new(Cell::new(false));
-    let flag_prime = Rc::clone(&flag);
-    let d = OnDrop(move || flag_prime.set(true));
+fn drop_drops() {
+    let flag = Arc::new(AtomicBool::new(false));
+    let flag_prime = Arc::clone(&flag);
+    let d = OnDrop(move || flag_prime.store(true, atomic::Ordering::Relaxed));
 
     let slice = slice_owned(d, |_| &[]);
 
-    assert_eq!(flag.get(), false);
+    assert_eq!(flag.load(atomic::Ordering::Relaxed), false);
 
-    std::mem::drop(slice);
+    drop(slice);
 
-    assert_eq!(flag.get(), true);
+    assert_eq!(flag.load(atomic::Ordering::Relaxed), true);
 }
 
 #[test]