Commit c717c73f authored by Hrvoje Nikšić's avatar Hrvoje Nikšić Committed by Miss Islington (bot)

bpo-38178: Don't explicitly pass "loop" to EchoClientProtocol. (GH-16159)



https://bugs.python.org/issue38178
parent 6e27a0d7
...@@ -767,9 +767,8 @@ data, and waits until the connection is closed:: ...@@ -767,9 +767,8 @@ data, and waits until the connection is closed::
class EchoClientProtocol(asyncio.Protocol): class EchoClientProtocol(asyncio.Protocol):
def __init__(self, message, on_con_lost, loop): def __init__(self, message, on_con_lost):
self.message = message self.message = message
self.loop = loop
self.on_con_lost = on_con_lost self.on_con_lost = on_con_lost
def connection_made(self, transport): def connection_made(self, transport):
...@@ -869,11 +868,10 @@ method, sends data and closes the transport when it receives the answer:: ...@@ -869,11 +868,10 @@ method, sends data and closes the transport when it receives the answer::
class EchoClientProtocol: class EchoClientProtocol:
def __init__(self, message, loop): def __init__(self, message, on_con_lost):
self.message = message self.message = message
self.loop = loop
self.transport = None self.transport = None
self.on_con_lost = loop.create_future() self.on_con_lost = on_con_lost
def connection_made(self, transport): def connection_made(self, transport):
self.transport = transport self.transport = transport
...@@ -899,13 +897,15 @@ method, sends data and closes the transport when it receives the answer:: ...@@ -899,13 +897,15 @@ method, sends data and closes the transport when it receives the answer::
# low-level APIs. # low-level APIs.
loop = asyncio.get_running_loop() loop = asyncio.get_running_loop()
on_con_lost = loop.create_future()
message = "Hello World!" message = "Hello World!"
transport, protocol = await loop.create_datagram_endpoint( transport, protocol = await loop.create_datagram_endpoint(
lambda: EchoClientProtocol(message, loop), lambda: EchoClientProtocol(message, on_con_lost),
remote_addr=('127.0.0.1', 9999)) remote_addr=('127.0.0.1', 9999))
try: try:
await protocol.on_con_lost await on_con_lost
finally: finally:
transport.close() transport.close()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment