]> granicus.if.org Git - python/commitdiff
asyncio: BaseSelectorEventLoop.close() now closes the self-pipe before calling
authorVictor Stinner <victor.stinner@gmail.com>
Thu, 20 Nov 2014 23:23:27 +0000 (00:23 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Thu, 20 Nov 2014 23:23:27 +0000 (00:23 +0100)
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

index 116d380157dc58a9864ad66aa0569492cde0b7fb..f0c94c4557f2084a3a06de78ab0e838dba4bef56 100644 (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