diff options
author | Yury Selivanov <yury@magic.io> | 2018-05-28 18:31:28 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-28 18:31:28 (GMT) |
commit | dbf102271fcc316f353c7e0a283811b661d128f2 (patch) | |
tree | 8807a0305490616dc3b480fae5e50e98c80b4fa8 /Lib/asyncio/base_events.py | |
parent | e549c4be5fb010f5faf12236af8faa720a1429be (diff) | |
download | cpython-dbf102271fcc316f353c7e0a283811b661d128f2.zip cpython-dbf102271fcc316f353c7e0a283811b661d128f2.tar.gz cpython-dbf102271fcc316f353c7e0a283811b661d128f2.tar.bz2 |
bpo-33654: Support BufferedProtocol in set_protocol() and start_tls() (GH-7130)
In this commit:
* Support BufferedProtocol in set_protocol() and start_tls()
* Fix proactor to cancel readers reliably
* Update tests to be compatible with OpenSSL 1.1.1
* Clarify BufferedProtocol docs
* Bump TLS tests timeouts to 60 seconds; eliminate possible race from start_serving
* Rewrite test_start_tls_server_1
Diffstat (limited to 'Lib/asyncio/base_events.py')
-rw-r--r-- | Lib/asyncio/base_events.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 09eb440..a0243f5 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -157,7 +157,6 @@ def _run_until_complete_cb(fut): futures._get_loop(fut).stop() - class _SendfileFallbackProtocol(protocols.Protocol): def __init__(self, transp): if not isinstance(transp, transports._FlowControlMixin): @@ -304,6 +303,9 @@ class Server(events.AbstractServer): async def start_serving(self): self._start_serving() + # Skip one loop iteration so that all 'loop.add_reader' + # go through. + await tasks.sleep(0, loop=self._loop) async def serve_forever(self): if self._serving_forever_fut is not None: @@ -1363,6 +1365,9 @@ class BaseEventLoop(events.AbstractEventLoop): ssl, backlog, ssl_handshake_timeout) if start_serving: server._start_serving() + # Skip one loop iteration so that all 'loop.add_reader' + # go through. + await tasks.sleep(0, loop=self) if self._debug: logger.info("%r is serving", server) |