mirror of https://github.com/python/cpython
StreamWriter: close() now clears the reference to the transport
StreamWriter now raises an exception if it is closed: write(), writelines(), write_eof(), can_write_eof(), get_extra_info(), drain().
This commit is contained in:
parent
caa12dab69
commit
e7a35717d2
|
@ -258,8 +258,22 @@ class StreamWriter:
|
|||
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 @@ class StreamWriter:
|
|||
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 @@ class StreamWriter:
|
|||
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:
|
||||
|
|
Loading…
Reference in New Issue