bpo-36867: _test_multiprocessing: avoid weak sync primitive (GH-13292)

Avoid weak sync primitive in multiprocessing resource_tracker test.
This commit is contained in:
Pierre Glaser 2019-05-17 20:20:07 +02:00 committed by Victor Stinner
parent 3ea702eca1
commit cbe72d8426
1 changed files with 12 additions and 4 deletions

View File

@ -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