diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-01-15 12:54:49 +0100 |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-01-15 12:54:49 +0100 |
commit | 693fa4b2242d0d64c3343797396ec61fd5774bc0 (patch) | |
tree | 39bca053025927f50c954789e15622ed28cf3757 | |
parent | 8addd76f4b56b1d8239f624fc97d1e6a9674b4e7 (diff) | |
download | trollius-git-693fa4b2242d0d64c3343797396ec61fd5774bc0.tar.gz |
Python issue #23243: Fix _UnixWritePipeTransport.close()
Do nothing if the transport is already closed. Before it was not possible to
close the transport twice.
-rw-r--r-- | asyncio/unix_events.py | 2 | ||||
-rw-r--r-- | tests/test_unix_events.py | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/asyncio/unix_events.py b/asyncio/unix_events.py index 14b4843..9f4005c 100644 --- a/asyncio/unix_events.py +++ b/asyncio/unix_events.py @@ -516,7 +516,7 @@ class _UnixWritePipeTransport(transports._FlowControlMixin, self._loop.call_soon(self._call_connection_lost, None) def close(self): - if not self._closing: + if self._pipe is not None and not self._closing: # write_eof is all what we needed to close the write pipe self.write_eof() diff --git a/tests/test_unix_events.py b/tests/test_unix_events.py index 5f4b024..4a68ce3 100644 --- a/tests/test_unix_events.py +++ b/tests/test_unix_events.py @@ -766,6 +766,9 @@ class UnixWritePipeTransportTests(test_utils.TestCase): tr.close() tr.write_eof.assert_called_with() + # closing the transport twice must not fail + tr.close() + def test_close_closing(self): tr = unix_events._UnixWritePipeTransport( self.loop, self.pipe, self.protocol) |