mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
GH-84559: Deprecate fork being the multiprocessing default. (#100618)
This starts the process. Users who don't specify their own start method and use the default on platforms where it is 'fork' will see a DeprecationWarning upon multiprocessing.Pool() construction or upon multiprocessing.Process.start() or concurrent.futures.ProcessPool use. See the related issue and documentation within this change for details.
This commit is contained in:
parent
618b7a8260
commit
0ca67e6313
16 changed files with 284 additions and 63 deletions
|
@ -4,6 +4,7 @@ import collections.abc
|
|||
import concurrent.futures
|
||||
import functools
|
||||
import io
|
||||
import multiprocessing
|
||||
import os
|
||||
import platform
|
||||
import re
|
||||
|
@ -2762,7 +2763,13 @@ class GetEventLoopTestsMixin:
|
|||
support.skip_if_broken_multiprocessing_synchronize()
|
||||
|
||||
async def main():
|
||||
pool = concurrent.futures.ProcessPoolExecutor()
|
||||
if multiprocessing.get_start_method() == 'fork':
|
||||
# Avoid 'fork' DeprecationWarning.
|
||||
mp_context = multiprocessing.get_context('forkserver')
|
||||
else:
|
||||
mp_context = None
|
||||
pool = concurrent.futures.ProcessPoolExecutor(
|
||||
mp_context=mp_context)
|
||||
result = await self.loop.run_in_executor(
|
||||
pool, _test_get_event_loop_new_process__sub_proc)
|
||||
pool.shutdown()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue