mirror of https://github.com/python/cpython
#17395: wait for live children in test_multiprocessing.
This commit is contained in:
parent
37474f43f3
commit
dc6763b567
|
@ -2998,7 +2998,13 @@ class ManagerMixin(object):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
multiprocessing.active_children() # discard dead process objs
|
# only the manager process should be returned by active_children()
|
||||||
|
# but this can take a bit on slow machines, so wait a few seconds
|
||||||
|
# if there are other children too (see #17395)
|
||||||
|
t = 0.01
|
||||||
|
while len(multiprocessing.active_children()) > 1 and t < 5:
|
||||||
|
time.sleep(t)
|
||||||
|
t *= 2
|
||||||
gc.collect() # do garbage collection
|
gc.collect() # do garbage collection
|
||||||
if cls.manager._number_of_objects() != 0:
|
if cls.manager._number_of_objects() != 0:
|
||||||
# This is not really an error since some tests do not
|
# This is not really an error since some tests do not
|
||||||
|
|
Loading…
Reference in New Issue