@@ -3,7 +3,7 @@ use std::ops::FnMut;
33use std:: panic:: { self , AssertUnwindSafe } ;
44use std:: sync:: atomic:: { AtomicUsize , Ordering } ;
55use std:: sync:: mpsc:: channel;
6- use std:: sync:: { Arc , Condvar , MappedMutexGuard , Mutex , MutexGuard , TryLockError } ;
6+ use std:: sync:: { Arc , MappedMutexGuard , Mutex , MutexGuard , TryLockError } ;
77use std:: { hint, mem, thread} ;
88
99////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -423,38 +423,6 @@ fn test_replace_poison() {
423423 inner ( || NonCopyNeedsDrop ( 10 ) , || NonCopyNeedsDrop ( 20 ) ) ;
424424}
425425
426- #[ test]
427- #[ cfg_attr( not( panic = "unwind" ) , ignore = "test requires unwinding support" ) ]
428- fn test_arc_condvar_poison ( ) {
429- struct Packet < T > ( Arc < ( Mutex < T > , Condvar ) > ) ;
430-
431- let packet = Packet ( Arc :: new ( ( Mutex :: new ( 1 ) , Condvar :: new ( ) ) ) ) ;
432- let packet2 = Packet ( packet. 0 . clone ( ) ) ;
433- let ( tx, rx) = channel ( ) ;
434-
435- let _t = thread:: spawn ( move || -> ( ) {
436- rx. recv ( ) . unwrap ( ) ;
437- let & ( ref lock, ref cvar) = & * packet2. 0 ;
438- let _g = lock. lock ( ) . unwrap ( ) ;
439- cvar. notify_one ( ) ;
440- // Parent should fail when it wakes up.
441- panic ! ( ) ;
442- } ) ;
443-
444- let & ( ref lock, ref cvar) = & * packet. 0 ;
445- let mut lock = lock. lock ( ) . unwrap ( ) ;
446- tx. send ( ( ) ) . unwrap ( ) ;
447- while * lock == 1 {
448- match cvar. wait ( lock) {
449- Ok ( l) => {
450- lock = l;
451- assert_eq ! ( * lock, 1 ) ;
452- }
453- Err ( ..) => break ,
454- }
455- }
456- }
457-
458426#[ test]
459427#[ cfg_attr( not( panic = "unwind" ) , ignore = "test requires unwinding support" ) ]
460428fn test_mutex_arc_poison ( ) {
0 commit comments