From 2842904769d748c05faa76c85ddf9fecd7d189f4 Mon Sep 17 00:00:00 2001 From: Julien Duponchelle Date: Thu, 18 Aug 2016 15:04:43 +0200 Subject: [PATCH] Clean exit when you Ctrl+C the server and client are still connected --- gns3server/web/route.py | 1 - gns3server/web/web_server.py | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gns3server/web/route.py b/gns3server/web/route.py index ddd8297f..80b57dd5 100644 --- a/gns3server/web/route.py +++ b/gns3server/web/route.py @@ -222,7 +222,6 @@ class Route(object): response.set_status(409) response.json({"message": str(e), "status": 409, "image": e.image, "exception": e.__class__.__name__}) except asyncio.futures.CancelledError as e: - log.error("Request canceled") response = Response(request=request, route=route) response.set_status(408) response.json({"message": "Request canceled", "status": 408}) diff --git a/gns3server/web/web_server.py b/gns3server/web/web_server.py index 0d8bd5a2..c71967a4 100644 --- a/gns3server/web/web_server.py +++ b/gns3server/web/web_server.py @@ -112,6 +112,10 @@ class WebServer: for task in asyncio.Task.all_tasks(): task.cancel() + try: + yield from asyncio.wait_for(task, 1) + except: + pass self._loop.stop()