From f1070bb5b6d7f4255dc24524645f7be7e173db59 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 8 Jul 2014 23:55:59 +0200 Subject: Tulip issue #181: BaseEventLoop.create_datagram_endpoint() now waits until protocol.connection_made() has been called. Document also why transport constructors use a waiter. --- asyncio/base_events.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'asyncio/base_events.py') 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 -- cgit v1.2.1