(Merge 3.4) asyncio: Move loop attribute to _FlowControlMixin
Move the _loop attribute from the constructor of _SelectorTransport, _ProactorBasePipeTransport and _UnixWritePipeTransport classes to the constructor of the _FlowControlMixin class. Add also an assertion to explicit that the parent class must ensure that the loop is defined (not None)
This commit is contained in:
commit
5239caf835
|
@ -21,9 +21,8 @@ class _ProactorBasePipeTransport(transports._FlowControlMixin,
|
||||||
|
|
||||||
def __init__(self, loop, sock, protocol, waiter=None,
|
def __init__(self, loop, sock, protocol, waiter=None,
|
||||||
extra=None, server=None):
|
extra=None, server=None):
|
||||||
super().__init__(extra)
|
super().__init__(extra, loop)
|
||||||
self._set_extra(sock)
|
self._set_extra(sock)
|
||||||
self._loop = loop
|
|
||||||
self._sock = sock
|
self._sock = sock
|
||||||
self._protocol = protocol
|
self._protocol = protocol
|
||||||
self._server = server
|
self._server = server
|
||||||
|
|
|
@ -447,7 +447,7 @@ class _SelectorTransport(transports._FlowControlMixin,
|
||||||
_buffer_factory = bytearray # Constructs initial value for self._buffer.
|
_buffer_factory = bytearray # Constructs initial value for self._buffer.
|
||||||
|
|
||||||
def __init__(self, loop, sock, protocol, extra, server=None):
|
def __init__(self, loop, sock, protocol, extra, server=None):
|
||||||
super().__init__(extra)
|
super().__init__(extra, loop)
|
||||||
self._extra['socket'] = sock
|
self._extra['socket'] = sock
|
||||||
self._extra['sockname'] = sock.getsockname()
|
self._extra['sockname'] = sock.getsockname()
|
||||||
if 'peername' not in self._extra:
|
if 'peername' not in self._extra:
|
||||||
|
@ -455,7 +455,6 @@ class _SelectorTransport(transports._FlowControlMixin,
|
||||||
self._extra['peername'] = sock.getpeername()
|
self._extra['peername'] = sock.getpeername()
|
||||||
except socket.error:
|
except socket.error:
|
||||||
self._extra['peername'] = None
|
self._extra['peername'] = None
|
||||||
self._loop = loop
|
|
||||||
self._sock = sock
|
self._sock = sock
|
||||||
self._sock_fd = sock.fileno()
|
self._sock_fd = sock.fileno()
|
||||||
self._protocol = protocol
|
self._protocol = protocol
|
||||||
|
|
|
@ -238,8 +238,10 @@ class _FlowControlMixin(Transport):
|
||||||
resume_writing() may be called.
|
resume_writing() may be called.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, extra=None):
|
def __init__(self, extra=None, loop=None):
|
||||||
super().__init__(extra)
|
super().__init__(extra)
|
||||||
|
assert loop is not None
|
||||||
|
self._loop = loop
|
||||||
self._protocol_paused = False
|
self._protocol_paused = False
|
||||||
self._set_write_buffer_limits()
|
self._set_write_buffer_limits()
|
||||||
|
|
||||||
|
|
|
@ -369,9 +369,8 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
|
||||||
transports.WriteTransport):
|
transports.WriteTransport):
|
||||||
|
|
||||||
def __init__(self, loop, pipe, protocol, waiter=None, extra=None):
|
def __init__(self, loop, pipe, protocol, waiter=None, extra=None):
|
||||||
super().__init__(extra)
|
super().__init__(extra, loop)
|
||||||
self._extra['pipe'] = pipe
|
self._extra['pipe'] = pipe
|
||||||
self._loop = loop
|
|
||||||
self._pipe = pipe
|
self._pipe = pipe
|
||||||
self._fileno = pipe.fileno()
|
self._fileno = pipe.fileno()
|
||||||
mode = os.fstat(self._fileno).st_mode
|
mode = os.fstat(self._fileno).st_mode
|
||||||
|
|
|
@ -69,7 +69,8 @@ class TransportTests(unittest.TestCase):
|
||||||
def get_write_buffer_size(self):
|
def get_write_buffer_size(self):
|
||||||
return 512
|
return 512
|
||||||
|
|
||||||
transport = MyTransport()
|
loop = mock.Mock()
|
||||||
|
transport = MyTransport(loop=loop)
|
||||||
transport._protocol = mock.Mock()
|
transport._protocol = mock.Mock()
|
||||||
|
|
||||||
self.assertFalse(transport._protocol_paused)
|
self.assertFalse(transport._protocol_paused)
|
||||||
|
|
Loading…
Reference in New Issue