From b0a66f3502b7959aed19c25dad1f2deb86f7208d Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sun, 25 Nov 2018 09:29:47 +0100 Subject: single: Graceful ^C Allow cancellation of timeout wait. --- crocoite/controller.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'crocoite/controller.py') diff --git a/crocoite/controller.py b/crocoite/controller.py index 4d95b09..5f4fe10 100644 --- a/crocoite/controller.py +++ b/crocoite/controller.py @@ -178,7 +178,14 @@ class SinglePageController: idleTimeout = None while True: idleProc = asyncio.ensure_future (l.idle.wait ()) - finished, pending = await asyncio.wait([idleProc, timeoutProc], return_when=asyncio.FIRST_COMPLETED, timeout=idleTimeout) + try: + finished, pending = await asyncio.wait([idleProc, timeoutProc], + return_when=asyncio.FIRST_COMPLETED, timeout=idleTimeout) + except asyncio.CancelledError: + idleProc.cancel () + timeoutProc.cancel () + break + if not finished: # idle timeout idleProc.cancel () -- cgit v1.2.3