bpo-33674: Pause the transport as early as possible (#7192)

This commit is contained in:
Yury Selivanov 2018-05-29 01:00:12 -04:00 committed by GitHub
parent 3e51a3d592
commit f295587c45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 2 deletions

View File

@ -1106,10 +1106,13 @@ class BaseEventLoop(events.AbstractEventLoop):
ssl_handshake_timeout=ssl_handshake_timeout,
call_connection_made=False)
# Pause early so that "ssl_protocol.data_received()" doesn't
# have a chance to get called before "ssl_protocol.connection_made()".
transport.pause_reading()
transport.set_protocol(ssl_protocol)
self.call_soon(ssl_protocol.connection_made, transport)
if not transport.is_reading():
self.call_soon(transport.resume_reading)
self.call_soon(transport.resume_reading)
await waiter
return ssl_protocol._app_transport

View File

@ -0,0 +1,2 @@
Pause the transport as early as possible to further reduce the risk of
data_received() being called before connection_made().