From 662f2bff4c53cd2086f2d31d4bc5cadf5d655c90 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Fri, 25 Jan 2019 11:57:45 -0300 Subject: [PATCH] [wallet server] take control of executor --- torba/server/server.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/torba/server/server.py b/torba/server/server.py index ffcdfc4b9..b6435e5ab 100644 --- a/torba/server/server.py +++ b/torba/server/server.py @@ -1,6 +1,7 @@ import signal import logging import asyncio +from concurrent.futures.thread import ThreadPoolExecutor import torba from torba.server.mempool import MemPool, MemPoolAPI @@ -116,6 +117,8 @@ class Server: def run(self): loop = asyncio.get_event_loop() + executor = ThreadPoolExecutor(1) + loop.set_default_executor(executor) def __exit(): raise SystemExit() @@ -123,9 +126,8 @@ class Server: 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: + executor.shutdown(True) loop.run_until_complete(self.stop()) - loop.run_until_complete(loop.shutdown_asyncgens())