Skip to content

Commit c060eb3

Browse files
committed
Initial commit
1 parent d5796e6 commit c060eb3

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

Lib/test/_test_multiprocessing.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)