mirror of
https://github.com/python/cpython.git
synced 2025-11-01 14:11:41 +00:00
gh-124694: Add concurrent.futures.InterpreterPoolExecutor (gh-124548)
This is an implementation of InterpreterPoolExecutor that builds on ThreadPoolExecutor. (Note that this is not tied to PEP 734, which is strictly about adding a new stdlib module.) Possible future improvements: * support passing a script for the initializer or to submit() * support passing (most) arbitrary functions without pickling * support passing closures * optionally exec functions against __main__ instead of the their original module
This commit is contained in:
parent
a38fef4439
commit
a5a7f5e16d
12 changed files with 828 additions and 40 deletions
|
|
@ -74,6 +74,10 @@ class ThreadPoolMixin(ExecutorMixin):
|
|||
executor_type = futures.ThreadPoolExecutor
|
||||
|
||||
|
||||
class InterpreterPoolMixin(ExecutorMixin):
|
||||
executor_type = futures.InterpreterPoolExecutor
|
||||
|
||||
|
||||
class ProcessPoolForkMixin(ExecutorMixin):
|
||||
executor_type = futures.ProcessPoolExecutor
|
||||
ctx = "fork"
|
||||
|
|
@ -120,6 +124,7 @@ def get_context(self):
|
|||
|
||||
def create_executor_tests(remote_globals, mixin, bases=(BaseTestCase,),
|
||||
executor_mixins=(ThreadPoolMixin,
|
||||
InterpreterPoolMixin,
|
||||
ProcessPoolForkMixin,
|
||||
ProcessPoolForkserverMixin,
|
||||
ProcessPoolSpawnMixin)):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue