asyncio: Fix _ProactorWritePipeTransport._pipe_closed()
Do nothing if the pipe is already closed. _loop_writing() may call
_force_close() when it gets ConnectionResetError.
diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py
index fb67155..6b5707c 100644
--- a/Lib/asyncio/proactor_events.py
+++ b/Lib/asyncio/proactor_events.py
@@ -304,9 +304,12 @@
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: