summaryrefslogtreecommitdiff
path: root/asyncio/selector_events.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2015-07-20 17:18:59 +0200
committerVictor Stinner <vstinner@redhat.com>2015-07-20 17:36:41 +0200
commit13b71a16ee9d5af4939a7e214e92fa89cb96f6a3 (patch)
treecb9525ce018206804591e7e255c5745a044018c6 /asyncio/selector_events.py
parent9bb67431adc916d9d4b4e23ca257658c980d035d (diff)
downloadtrollius-git-closing.tar.gz
Add closing read-only property to transportsclosing
* Disallow write() on closing transports * Disallow aslo calling pause_writing() and resume_writing() on StreamReaderProtocol if the transport is closing
Diffstat (limited to 'asyncio/selector_events.py')
-rw-r--r--asyncio/selector_events.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/asyncio/selector_events.py b/asyncio/selector_events.py
index 7c5b9b5..6898138 100644
--- a/asyncio/selector_events.py
+++ b/asyncio/selector_events.py
@@ -521,7 +521,6 @@ class _SelectorTransport(transports._FlowControlMixin,
self._server = server
self._buffer = self._buffer_factory()
self._conn_lost = 0 # Set when call to connection_lost scheduled.
- self._closing = False # Set when close() called.
if self._server is not None:
self._server._attach()
@@ -681,6 +680,8 @@ class _SelectorSocketTransport(_SelectorTransport):
if not isinstance(data, (bytes, bytearray, memoryview)):
raise TypeError('data argument must be byte-ish (%r)',
type(data))
+ if self._closing:
+ raise RuntimeError('Cannot call write() after close()')
if self._eof:
raise RuntimeError('Cannot call write() after write_eof()')
if not data: