diff --git a/HISTORY.rst b/HISTORY.rst index 8119c2fe..866edb4b 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -6,6 +6,7 @@ History 0.6.2 (2017-10-19) ------------------ * fix loop pickling regression in #150 #154 +* cleanup termination with uvloop #154 0.6.1 (2017-10-19) ------------------ diff --git a/aiohttp_devtools/runserver/main.py b/aiohttp_devtools/runserver/main.py index 5bfb2119..f0310d5e 100644 --- a/aiohttp_devtools/runserver/main.py +++ b/aiohttp_devtools/runserver/main.py @@ -24,12 +24,9 @@ def run_app(app, port, loop): server.close() loop.run_until_complete(server.wait_closed()) loop.run_until_complete(app.shutdown()) - loop.run_until_complete(app.cleanup()) - with contextlib.suppress(asyncio.TimeoutError): - loop.run_until_complete(handler.shutdown(2)) - loop.stop() - loop.run_forever() - loop.close() + with contextlib.suppress(asyncio.TimeoutError, KeyboardInterrupt): + loop.run_until_complete(handler.shutdown(0.1)) + loop.run_until_complete(app.cleanup()) def runserver(*, loop: asyncio.AbstractEventLoop=None, **config_kwargs): diff --git a/aiohttp_devtools/runserver/serve.py b/aiohttp_devtools/runserver/serve.py index 14e783a1..a80fc95e 100644 --- a/aiohttp_devtools/runserver/serve.py +++ b/aiohttp_devtools/runserver/serve.py @@ -132,10 +132,9 @@ def serve_main_app(config: Config, tty_path: Optional[str], loop: asyncio.Abstra server.close() loop.run_until_complete(server.wait_closed()) loop.run_until_complete(app.shutdown()) - with contextlib.suppress(asyncio.TimeoutError): + with contextlib.suppress(asyncio.TimeoutError, KeyboardInterrupt): loop.run_until_complete(handler.shutdown(0.1)) - loop.run_until_complete(app.cleanup()) - loop.close() + loop.run_until_complete(app.cleanup()) WS = 'websockets'