[Python-checkins] cpython (merge 3.4 -> default): Merge 3.4 (asyncio)
victor.stinner
python-checkins at python.org
Thu Jan 15 09:36:31 CET 2015
https://hg.python.org/cpython/rev/681e54e6d11e
changeset: 94161:681e54e6d11e
parent: 94159:2a8378e69d75
parent: 94160:6ab2575bc12b
user: Victor Stinner <victor.stinner at gmail.com>
date: Thu Jan 15 09:35:29 2015 +0100
summary:
Merge 3.4 (asyncio)
files:
Lib/asyncio/streams.py | 25 +++++++++++++++++++++----
1 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py
--- a/Lib/asyncio/streams.py
+++ b/Lib/asyncio/streams.py
@@ -258,8 +258,22 @@
self._reader = reader
self._loop = loop
+ def close(self):
+ if self._transport is None:
+ return
+ self._transport.close()
+ self._transport = None
+
+ def _check_closed(self):
+ if self._transport is None:
+ raise RuntimeError('StreamWriter is closed')
+
def __repr__(self):
- info = [self.__class__.__name__, 'transport=%r' % self._transport]
+ info = [self.__class__.__name__]
+ if self._transport is not None:
+ info.append('transport=%r' % self._transport)
+ else:
+ info.append('closed')
if self._reader is not None:
info.append('reader=%r' % self._reader)
return '<%s>' % ' '.join(info)
@@ -269,21 +283,23 @@
return self._transport
def write(self, data):
+ self._check_closed()
self._transport.write(data)
def writelines(self, data):
+ self._check_closed()
self._transport.writelines(data)
def write_eof(self):
+ self._check_closed()
return self._transport.write_eof()
def can_write_eof(self):
+ self._check_closed()
return self._transport.can_write_eof()
- def close(self):
- return self._transport.close()
-
def get_extra_info(self, name, default=None):
+ self._check_closed()
return self._transport.get_extra_info(name, default)
@coroutine
@@ -295,6 +311,7 @@
w.write(data)
yield from w.drain()
"""
+ self._check_closed()
if self._reader is not None:
exc = self._reader.exception()
if exc is not None:
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list