From 5e63120f8d1593700f8d5813c535d318c8bab111 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 21 Nov 2014 00:23:27 +0100 Subject: [PATCH] asyncio: BaseSelectorEventLoop.close() now closes the self-pipe before calling the parent close() method. If the event loop is already closed, the self-pipe is not unregistered from the selector. --- Lib/asyncio/selector_events.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py index 116d380157d..f0c94c4557f 100644 --- a/Lib/asyncio/selector_events.py +++ b/Lib/asyncio/selector_events.py @@ -68,10 +68,12 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop): address, waiter, extra) def close(self): + if self._running: + raise RuntimeError("Cannot close a running event loop") if self.is_closed(): return - super().close() self._close_self_pipe() + super().close() if self._selector is not None: self._selector.close() self._selector = None