(Merge 3.4) 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.
This commit is contained in:
Victor Stinner 2014-11-21 00:23:59 +01:00
commit 35830270e1

View file

@ -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