# wait until protocol.connection_made() has been called
self._waiter._set_result_unless_cancelled(None)
self._session_established = True
- # In case transport.write() was already called
- self._process_write_backlog()
+ # In case transport.write() was already called. Don't call
+ # immediatly _process_write_backlog(), but schedule it:
+ # _on_handshake_complete() can be called indirectly from
+ # _process_write_backlog(), and _process_write_backlog() is not
+ # reentrant.
+ self._loop.call(self._process_write_backlog)
def _process_write_backlog(self):
# Try to make progress on the write backlog.