From 05385292e9173aa341f26f56f74cb2da6aff8057 Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Fri, 20 Dec 2013 22:14:03 +1000 Subject: [PATCH] Issue #19946: use public API for multiprocessing start methods This should appease the OpenIndiana buildbot. Also lengthened the worst case timeout to try to eliminate the inconsistent failure on one of the Windows 7 buildbots. --- Lib/test/test_multiprocessing_main_handling.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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):