diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -185,6 +185,12 @@ class BaseEventLoop(events.AbstractEvent """ self.call_soon(_raise_stop_error) + def close(self): + self._ready.clear() + self._scheduled.clear() + # XXX shutdown executor? + self._default_executor = None + def is_running(self): """Returns running status of event loop.""" return self._running diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py --- a/Lib/asyncio/proactor_events.py +++ b/Lib/asyncio/proactor_events.py @@ -276,6 +276,7 @@ class BaseProactorEventLoop(base_events. self._proactor.close() self._proactor = None self._selector = None + super().close() def sock_recv(self, sock, n): return self._proactor.recv(sock, n) diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py --- a/Lib/asyncio/selector_events.py +++ b/Lib/asyncio/selector_events.py @@ -56,6 +56,7 @@ class BaseSelectorEventLoop(base_events. self._close_self_pipe() self._selector.close() self._selector = None + super().close() def _socketpair(self): raise NotImplementedError