Issue #26796: Don't configure the number of workers for default threadpool executor.

Initial patch by Hans Lawrenz.
This commit is contained in:
Yury Selivanov 2016-10-21 17:40:42 -04:00
parent 9f91e858ce
commit e8a6045fea
3 changed files with 12 additions and 4 deletions

View File

@ -670,6 +670,13 @@ pool of processes). By default, an event loop uses a thread pool executor
This method is a :ref:`coroutine <coroutine>`.
.. versionchanged:: 3.5.3
:meth:`BaseEventLoop.run_in_executor` no longer configures the
``max_workers`` of the thread pool executor it creates, instead
leaving it up to the thread pool executor
(:class:`~concurrent.futures.ThreadPoolExecutor`) to set the
default.
.. method:: AbstractEventLoop.set_default_executor(executor)
Set the default executor used by :meth:`run_in_executor`.

View File

@ -41,9 +41,6 @@ from .log import logger
__all__ = ['BaseEventLoop']
# Argument for default thread pool executor creation.
_MAX_WORKERS = 5
# Minimum number of _scheduled timer handles before cleanup of
# cancelled handles is performed.
_MIN_SCHEDULED_TIMER_HANDLES = 100
@ -616,7 +613,7 @@ class BaseEventLoop(events.AbstractEventLoop):
if executor is None:
executor = self._default_executor
if executor is None:
executor = concurrent.futures.ThreadPoolExecutor(_MAX_WORKERS)
executor = concurrent.futures.ThreadPoolExecutor()
self._default_executor = executor
return futures.wrap_future(executor.submit(func, *args), loop=self)

View File

@ -402,6 +402,10 @@ Library
children are done.
Patch by Johannes Ebke.
- Issue #26796: Don't configure the number of workers for default
threadpool executor.
Initial patch by Hans Lawrenz.
IDLE
----