The loop must not be running when this function is called.
Any pending callbacks will be discarded.
- This method clears all queues and shuts down the default executor. By
- default, it waits for the default executor to finish. Set
- *loop.wait_executor_on_close* to ``False`` to not wait for the executor.
+ This method clears all queues and shuts down the executor, but does
+ not wait for the executor to finish.
This method is idempotent and irreversible. No other methods
should be called after the event loop is closed.
- .. versionchanged:: 3.8
- The method now waits for the default executor to finish by default.
- Added *loop.wait_executor_on_close* attribute.
-
-
.. coroutinemethod:: loop.shutdown_asyncgens()
Schedule all currently open :term:`asynchronous generator` objects to
class BaseEventLoop(events.AbstractEventLoop):
def __init__(self):
- # If true, close() waits for the default executor to finish
- self.wait_executor_on_close = True
self._timer_cancelled_count = 0
self._closed = False
self._stopping = False
executor = self._default_executor
if executor is not None:
self._default_executor = None
- executor.shutdown(wait=self.wait_executor_on_close)
+ executor.shutdown(wait=False)
def is_closed(self):
"""Returns True if the event loop was closed."""
+++ /dev/null
-:mod:`asyncio`: ``loop.close()`` now waits for the default executor to
-finish by default. Set ``loop.wait_executor_on_close`` attribute to
-``False`` to opt-in for Python 3.7 behavior (not wait for the executor to
-finish).