]> granicus.if.org Git - python/commitdiff
asyncio: Fix _ProactorWritePipeTransport._pipe_closed()
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 4 Feb 2014 07:57:48 +0000 (08:57 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 4 Feb 2014 07:57:48 +0000 (08:57 +0100)
Do nothing if the pipe is already closed. _loop_writing() may call
_force_close() when it gets ConnectionResetError.

Lib/asyncio/proactor_events.py

index fb671557860f74fe63182fe15ed62a110640f6b2..6b5707c71382217c9dfa7e06ce9e9b2da88fad15 100644 (file)
@@ -304,9 +304,12 @@ class _ProactorWritePipeTransport(_ProactorBaseWritePipeTransport):
         if fut.cancelled():
             # the transport has been closed
             return
+        assert fut.result() == b''
+        if self._closing:
+            assert self._read_fut is None
+            return
         assert fut is self._read_fut, (fut, self._read_fut)
         self._read_fut = None
-        assert fut.result() == b''
         if self._write_fut is not None:
             self._force_close(exc)
         else: