summaryrefslogtreecommitdiff
path: root/asyncio/base_events.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-08 23:55:59 +0200
committerVictor Stinner <victor.stinner@gmail.com>2014-07-08 23:55:59 +0200
commitf1070bb5b6d7f4255dc24524645f7be7e173db59 (patch)
treec525dd699c478376bb4b6e576edf2f33079196ad /asyncio/base_events.py
parentd7b6ba1b4703cc3b30c3c4f37f22575792cc8acf (diff)
downloadtrollius-git-f1070bb5b6d7f4255dc24524645f7be7e173db59.tar.gz
Tulip issue #181: BaseEventLoop.create_datagram_endpoint() now waits until
protocol.connection_made() has been called. Document also why transport constructors use a waiter.
Diffstat (limited to 'asyncio/base_events.py')
-rw-r--r--asyncio/base_events.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/asyncio/base_events.py b/asyncio/base_events.py
index 52c5517..833f81d 100644
--- a/asyncio/base_events.py
+++ b/asyncio/base_events.py
@@ -169,7 +169,7 @@ class BaseEventLoop(events.AbstractEventLoop):
raise NotImplementedError
def _make_datagram_transport(self, sock, protocol,
- address=None, extra=None):
+ address=None, waiter=None, extra=None):
"""Create datagram transport."""
raise NotImplementedError
@@ -605,7 +605,10 @@ class BaseEventLoop(events.AbstractEventLoop):
raise exceptions[0]
protocol = protocol_factory()
- transport = self._make_datagram_transport(sock, protocol, r_addr)
+ waiter = futures.Future(loop=self)
+ transport = self._make_datagram_transport(sock, protocol, r_addr,
+ waiter)
+ yield from waiter
return transport, protocol
@coroutine