summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authoridomic <michael.ido@gmail.com>2020-05-26 14:54:21 (GMT)
committerGitHub <noreply@github.com>2020-05-26 14:54:21 (GMT)
commitdb098bc1f05bd0773943e59f83489f05f28dedf8 (patch)
tree05d3c4c2d7910fed80411f653a4afe842a430bc8 /Lib
parent5eb45d7d4e812e89d77da84cc619e9db81561a34 (diff)
downloadcpython-db098bc1f05bd0773943e59f83489f05f28dedf8.zip
cpython-db098bc1f05bd0773943e59f83489f05f28dedf8.tar.gz
cpython-db098bc1f05bd0773943e59f83489f05f28dedf8.tar.bz2
bpo-39244: multiprocessing return default start method first on macOS (GH-18625)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/multiprocessing/context.py7
-rw-r--r--Lib/test/_test_multiprocessing.py4
2 files changed, 7 insertions, 4 deletions
diff --git a/Lib/multiprocessing/context.py b/Lib/multiprocessing/context.py
index 5f8e0f0..8d0525d 100644
--- a/Lib/multiprocessing/context.py
+++ b/Lib/multiprocessing/context.py
@@ -257,10 +257,11 @@ class DefaultContext(BaseContext):
if sys.platform == 'win32':
return ['spawn']
else:
+ methods = ['spawn', 'fork'] if sys.platform == 'darwin' else ['fork', 'spawn']
if reduction.HAVE_SEND_HANDLE:
- return ['fork', 'spawn', 'forkserver']
- else:
- return ['fork', 'spawn']
+ methods.append('forkserver')
+ return methods
+
#
# Context types for fixed start method
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index dc8164f..155a827 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -5039,7 +5039,9 @@ class TestStartMethod(unittest.TestCase):
self.assertEqual(methods, ['spawn'])
else:
self.assertTrue(methods == ['fork', 'spawn'] or
- methods == ['fork', 'spawn', 'forkserver'])
+ methods == ['spawn', 'fork'] or
+ methods == ['fork', 'spawn', 'forkserver'] or
+ methods == ['spawn', 'fork', 'forkserver'])
def test_preload_resources(self):
if multiprocessing.get_start_method() != 'forkserver':