From 9a9d37cc50447555327e96f99f20c0933395be66 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Thu, 24 Jan 2019 21:40:24 -0300 Subject: [PATCH] [wallet server] improved/stabler signal handlers --- torba/server/server.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/torba/server/server.py b/torba/server/server.py index a9e980951..ffcdfc4b9 100644 --- a/torba/server/server.py +++ b/torba/server/server.py @@ -116,10 +116,16 @@ class Server: def run(self): loop = asyncio.get_event_loop() + + def __exit(): + raise SystemExit() try: - loop.add_signal_handler(signal.SIGINT, lambda: asyncio.ensure_future(self.stop())) - loop.add_signal_handler(signal.SIGTERM, lambda: asyncio.ensure_future(self.stop())) + loop.add_signal_handler(signal.SIGINT, __exit) + loop.add_signal_handler(signal.SIGTERM, __exit) loop.run_until_complete(self.start()) loop.run_until_complete(self.shutdown_event.wait()) + except (SystemExit, KeyboardInterrupt): + pass finally: + loop.run_until_complete(self.stop()) loop.run_until_complete(loop.shutdown_asyncgens())