From 13b71a16ee9d5af4939a7e214e92fa89cb96f6a3 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 20 Jul 2015 17:18:59 +0200 Subject: Add closing read-only property to transports * Disallow write() on closing transports * Disallow aslo calling pause_writing() and resume_writing() on StreamReaderProtocol if the transport is closing --- asyncio/selector_events.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'asyncio/selector_events.py') 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: -- cgit v1.2.1