@@ -1496,6 +1496,12 @@ def _acquire_release(lock, timeout, l=None, n=1):
14961496 for _ in range (n ):
14971497 lock .release ()
14981498
1499+ @staticmethod
1500+ def _acquire_and_wait (lock , barrier , timeout = .1 ):
1501+ lock .acquire ()
1502+ barrier .wait ()
1503+ time .sleep (timeout )
1504+
14991505 def test_repr_rlock (self ):
15001506 if self .TYPE != 'processes' :
15011507 self .skipTest ('test not appropriate for {}' .format (self .TYPE ))
@@ -1521,14 +1527,14 @@ def test_repr_rlock(self):
15211527 for i in range (n ):
15221528 self .assertIn (f'<RLock(MainProcess|T{ i + 1 } , { i + 1 } )>' , l )
15231529
1524-
1525- t = threading . Thread ( target = self ._acquire_release ,
1526- args = ( lock , 0.2 ) ,
1527- name = f'T1' )
1530+ rlock = self . RLock ()
1531+ barrier = self .Barrier ( 2 )
1532+ t = threading . Thread ( target = self . _acquire_and_wait ,
1533+ args = ( rlock , barrier , .2 ) )
15281534 t .start ()
1529- time . sleep ( 0.1 )
1530- self .assertEqual ('<RLock(SomeOtherThread, nonzero)>' , repr (lock ))
1531- time . sleep ( 0.2 )
1535+ barrier . wait ( )
1536+ self .assertEqual ('<RLock(SomeOtherThread, nonzero)>' , repr (rlock ))
1537+ t . join ( )
15321538
15331539 pname = 'P1'
15341540 l = multiprocessing .Manager ().list ()
@@ -1539,12 +1545,12 @@ def test_repr_rlock(self):
15391545 p .join ()
15401546 self .assertEqual (f'<RLock({ pname } , 1)>' , l [0 ])
15411547
1542- event = self .Event ( )
1548+ barrier = self .Barrier ( 2 )
15431549 lock = self .RLock ()
1544- p = self .Process (target = self ._acquire_event ,
1545- args = (lock , event ))
1550+ p = self .Process (target = self ._acquire_and_wait ,
1551+ args = (lock , barrier , .2 ))
15461552 p .start ()
1547- event .wait ()
1553+ barrier .wait ()
15481554 self .assertEqual ('<RLock(SomeOtherProcess, nonzero)>' , repr (lock ))
15491555 p .join ()
15501556
0 commit comments