@@ -51,8 +51,9 @@ def _make_ssl_transport(self, rawsock, protocol, sslcontext, waiter, *,
5151 server_side , server_hostname , extra , server )
5252
5353 def _make_datagram_transport (self , sock , protocol ,
54- address = None , extra = None ):
55- return _SelectorDatagramTransport (self , sock , protocol , address , extra )
54+ address = None , waiter = None , extra = None ):
55+ return _SelectorDatagramTransport (self , sock , protocol ,
56+ address , waiter , extra )
5657
5758 def close (self ):
5859 if self .is_closed ():
@@ -481,6 +482,7 @@ def __init__(self, loop, sock, protocol, waiter=None,
481482 self ._loop .add_reader (self ._sock_fd , self ._read_ready )
482483 self ._loop .call_soon (self ._protocol .connection_made , self )
483484 if waiter is not None :
485+ # wait until protocol.connection_made() has been called
484486 self ._loop .call_soon (waiter ._set_result_unless_cancelled , None )
485487
486488 def pause_reading (self ):
@@ -690,6 +692,7 @@ def _on_handshake(self):
690692 self ._loop .add_reader (self ._sock_fd , self ._read_ready )
691693 self ._loop .call_soon (self ._protocol .connection_made , self )
692694 if self ._waiter is not None :
695+ # wait until protocol.connection_made() has been called
693696 self ._loop .call_soon (self ._waiter ._set_result_unless_cancelled ,
694697 None )
695698
@@ -806,11 +809,15 @@ class _SelectorDatagramTransport(_SelectorTransport):
806809
807810 _buffer_factory = collections .deque
808811
809- def __init__ (self , loop , sock , protocol , address = None , extra = None ):
812+ def __init__ (self , loop , sock , protocol , address = None ,
813+ waiter = None , extra = None ):
810814 super ().__init__ (loop , sock , protocol , extra )
811815 self ._address = address
812816 self ._loop .add_reader (self ._sock_fd , self ._read_ready )
813817 self ._loop .call_soon (self ._protocol .connection_made , self )
818+ if waiter is not None :
819+ # wait until protocol.connection_made() has been called
820+ self ._loop .call_soon (waiter ._set_result_unless_cancelled , None )
814821
815822 def get_write_buffer_size (self ):
816823 return sum (len (data ) for data , _ in self ._buffer )
0 commit comments