File tree 2 files changed +3
-0
lines changed
2 files changed +3
-0
lines changed Original file line number Diff line number Diff line change 118
118
#![ feature( raw_ref_op) ]
119
119
#![ feature( rustc_attrs) ]
120
120
#![ feature( receiver_trait) ]
121
+ #![ feature( renamed_spin_loop) ]
121
122
#![ feature( min_specialization) ]
122
123
#![ feature( slice_ptr_get) ]
123
124
#![ feature( slice_ptr_len) ]
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ use core::cmp::Ordering;
10
10
use core:: convert:: { From , TryFrom } ;
11
11
use core:: fmt;
12
12
use core:: hash:: { Hash , Hasher } ;
13
+ use core:: hint;
13
14
use core:: intrinsics:: abort;
14
15
use core:: iter;
15
16
use core:: marker:: { PhantomData , Unpin , Unsize } ;
@@ -764,6 +765,7 @@ impl<T: ?Sized> Arc<T> {
764
765
loop {
765
766
// check if the weak counter is currently "locked"; if so, spin.
766
767
if cur == usize:: MAX {
768
+ hint:: spin_loop ( ) ;
767
769
cur = this. inner ( ) . weak . load ( Relaxed ) ;
768
770
continue ;
769
771
}
You can’t perform that action at this time.
0 commit comments