@@ -6,6 +6,13 @@ use std::sync::atomic::{AtomicPtr, AtomicUsize, Ordering};
66use std:: sync:: { mpsc, Arc , Barrier , OnceLock } ;
77use std:: thread;
88
9+ #[ test]
10+ fn is_sync ( ) {
11+ fn assert_send_sync < T : Send + Sync > ( ) { }
12+ assert_send_sync :: < Collector > ( ) ;
13+ assert_send_sync :: < Collector > ( ) ;
14+ }
15+
916struct DropTrack ( Arc < AtomicUsize > ) ;
1017
1118impl Drop for DropTrack {
@@ -343,9 +350,7 @@ fn owned_guard() {
343350
344351 let guard2 = collector. enter ( ) ;
345352 for object in objects. 0 . iter ( ) {
346- unsafe {
347- guard2. defer_retire ( object. load ( Ordering :: Acquire ) , reclaim:: boxed)
348- }
353+ unsafe { guard2. defer_retire ( object. load ( Ordering :: Acquire ) , reclaim:: boxed) }
349354 }
350355
351356 drop ( guard2) ;
@@ -392,12 +397,7 @@ fn owned_guard_concurrent() {
392397 s. spawn ( move || {
393398 barrier. wait ( ) ;
394399
395- unsafe {
396- guard. defer_retire (
397- objects. 0 [ i] . load ( Ordering :: Acquire ) ,
398- reclaim:: boxed,
399- )
400- } ;
400+ unsafe { guard. defer_retire ( objects. 0 [ i] . load ( Ordering :: Acquire ) , reclaim:: boxed) } ;
401401
402402 guard. flush ( ) ;
403403
@@ -580,8 +580,7 @@ impl<T> Stack<T> {
580580 }
581581
582582 pub fn is_empty ( & self ) -> bool {
583- let guard = self . collector . enter ( ) ;
584- guard. protect ( & self . head , Ordering :: Relaxed ) . is_null ( )
583+ self . head . load ( Ordering :: Relaxed ) . is_null ( )
585584 }
586585}
587586
0 commit comments