From cbe72d842646ded2454784679231e3d1e6252e72 Mon Sep 17 00:00:00 2001 From: Pierre Glaser Date: Fri, 17 May 2019 20:20:07 +0200 Subject: bpo-36867: _test_multiprocessing: avoid weak sync primitive (GH-13292) Avoid weak sync primitive in multiprocessing resource_tracker test. --- Lib/test/_test_multiprocessing.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 772c963..78ec53b 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -3945,11 +3945,19 @@ class _TestSharedMemory(BaseTestCase): # segment should not leak the given memory segment. p.terminate() p.wait() - time.sleep(1.0) # wait for the OS to collect the segment - # The shared memory file was deleted. - with self.assertRaises(FileNotFoundError): - smm = shared_memory.SharedMemory(name, create=False) + deadline = time.monotonic() + 60 + t = 0.1 + while time.monotonic() < deadline: + time.sleep(t) + t = min(t*2, 5) + try: + smm = shared_memory.SharedMemory(name, create=False) + except FileNotFoundError: + break + else: + raise AssertionError("A SharedMemory segment was leaked after" + " a process was abruptly terminated.") if os.name == 'posix': # A warning was emitted by the subprocess' own -- cgit v0.12