changeset: 104631:a475f2e39c6f parent: 104628:f1a154e59323 parent: 104630:99941cacfc38 user: Yury Selivanov date: Fri Oct 21 17:42:00 2016 -0400 files: Misc/NEWS description: Merge 3.6 (issue #26796) diff -r f1a154e59323 -r a475f2e39c6f Doc/library/asyncio-eventloop.rst --- a/Doc/library/asyncio-eventloop.rst Fri Oct 21 14:31:37 2016 -0700 +++ b/Doc/library/asyncio-eventloop.rst Fri Oct 21 17:42:00 2016 -0400 @@ -671,6 +671,13 @@ This method is a :ref:`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`. diff -r f1a154e59323 -r a475f2e39c6f Lib/asyncio/base_events.py --- a/Lib/asyncio/base_events.py Fri Oct 21 14:31:37 2016 -0700 +++ b/Lib/asyncio/base_events.py Fri Oct 21 17:42:00 2016 -0400 @@ -41,9 +41,6 @@ __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 @@ -620,7 +617,7 @@ 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)