bpo-34075: Deprecate non-ThreadPoolExecutor in loop.set_default_executor() (GH-8533)

Various asyncio internals expect that the default executor is a
`ThreadPoolExecutor`, so deprecate passing anything else to
`loop.set_default_executor()`.
This commit is contained in:
Elvis Pranskevichus 2018-07-30 11:42:43 +01:00 committed by Victor Stinner
parent 4e11c461ed
commit 22d25085db
5 changed files with 35 additions and 2 deletions

View file

@ -741,6 +741,12 @@ class BaseEventLoop(events.AbstractEventLoop):
executor.submit(func, *args), loop=self)
def set_default_executor(self, executor):
if not isinstance(executor, concurrent.futures.ThreadPoolExecutor):
warnings.warn(
'Using the default executor that is not an instance of '
'ThreadPoolExecutor is deprecated and will be prohibited '
'in Python 3.9',
DeprecationWarning, 2)
self._default_executor = executor
def _getaddrinfo_debug(self, host, port, family, type, proto, flags):