Skip to content

Commit da124fd

Browse files
committed
multiprocessing.get_context will not set the start method globally
1 parent 343719d commit da124fd

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

Lib/multiprocessing/context.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,7 @@ def __init__(self, context):
236236

237237
def get_context(self, method=None):
238238
if method is None:
239-
if self._actual_context is None:
240-
self._actual_context = self._default_context
241-
return self._actual_context
239+
return self._actual_context or self._default_context
242240
else:
243241
return super().get_context(method)
244242

Lib/test/_test_multiprocessing.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5811,6 +5811,12 @@ def check_context(self, ctx):
58115811
p.join()
58125812
self.assertEqual(child_method, ctx.get_start_method())
58135813

5814+
def test_default_context(self):
5815+
# Get_context should not have side effect, see gh-109070.
5816+
multiprocessing.set_start_method(None, force=True)
5817+
multiprocessing.get_context()
5818+
self.assertIsNone(multiprocessing.context._default_context._actual_context)
5819+
58145820
def test_context(self):
58155821
for method in ('fork', 'spawn', 'forkserver'):
58165822
try:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
:func:`multiprocessing.get_context` will not set the start method globally.

0 commit comments

Comments
 (0)