File tree Expand file tree Collapse file tree 1 file changed +14
-8
lines changed
compiler/rustc_data_structures/src/owned_slice Expand file tree Collapse file tree 1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change 1- use std:: { cell:: Cell , ops:: Deref , rc:: Rc } ;
1+ use std:: {
2+ ops:: Deref ,
3+ sync:: {
4+ atomic:: { self , AtomicBool } ,
5+ Arc ,
6+ } ,
7+ } ;
28
39use crate :: {
410 owned_slice:: { slice_owned, try_slice_owned, OwnedSlice } ,
@@ -47,18 +53,18 @@ fn boxed() {
4753}
4854
4955#[ test]
50- fn drop ( ) {
51- let flag = Rc :: new ( Cell :: new ( false ) ) ;
52- let flag_prime = Rc :: clone ( & flag) ;
53- let d = OnDrop ( move || flag_prime. set ( true ) ) ;
56+ fn drop_drops ( ) {
57+ let flag = Arc :: new ( AtomicBool :: new ( false ) ) ;
58+ let flag_prime = Arc :: clone ( & flag) ;
59+ let d = OnDrop ( move || flag_prime. store ( true , atomic :: Ordering :: Relaxed ) ) ;
5460
5561 let slice = slice_owned ( d, |_| & [ ] ) ;
5662
57- assert_eq ! ( flag. get ( ) , false ) ;
63+ assert_eq ! ( flag. load ( atomic :: Ordering :: Relaxed ) , false ) ;
5864
59- std :: mem :: drop ( slice) ;
65+ drop ( slice) ;
6066
61- assert_eq ! ( flag. get ( ) , true ) ;
67+ assert_eq ! ( flag. load ( atomic :: Ordering :: Relaxed ) , true ) ;
6268}
6369
6470#[ test]
You can’t perform that action at this time.
0 commit comments