diff --git a/Lib/test/test_multiprocessing_main_handling.py b/Lib/test/test_multiprocessing_main_handling.py index 7c201a30bc5..e4442d20e01 100644 --- a/Lib/test/test_multiprocessing_main_handling.py +++ b/Lib/test/test_multiprocessing_main_handling.py @@ -15,9 +15,9 @@ from test.script_helper import ( assert_python_ok, assert_python_failure, temp_dir, spawn_python, kill_python) -# We look inside the context module to find out which -# start methods we can check -from multiprocessing.context import _concrete_contexts +# Look up which start methods are available to test +import multiprocessing +AVAILABLE_START_METHODS = set(multiprocessing.get_all_start_methods()) verbose = support.verbose @@ -51,7 +51,7 @@ if __name__ == '__main__': p = Pool(5) results = [] p.map_async(f, [1, 2, 3], callback=results.extend) - deadline = time.time() + 2 # up to 2 s to report the results + deadline = time.time() + 5 # up to 5 s to report the results while not results: time.sleep(0.05) if time.time() > deadline: @@ -79,7 +79,7 @@ set_start_method(start_method) p = Pool(5) results = [] p.map_async(int, [1, 4, 9], callback=results.extend) -deadline = time.time() + 2 # up to 2 s to report the results +deadline = time.time() + 5 # up to 5 s to report the results while not results: time.sleep(0.05) if time.time() > deadline: @@ -131,7 +131,7 @@ class MultiProcessingCmdLineMixin(): maxDiff = None # Show full tracebacks on subprocess failure def setUp(self): - if self.start_method not in _concrete_contexts: + if self.start_method not in AVAILABLE_START_METHODS: self.skipTest("%r start method not available" % self.start_method) def _check_output(self, script_name, exit_code, out, err):