From 58a9904a3411a5d49aa98573f80d6db663006982 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Thu, 3 Aug 2023 15:19:19 +0000 Subject: [PATCH] daemon: rm "daemon_jobs". maybe makes _run API less error-prone (follow-up prev) --- electrum/daemon.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/electrum/daemon.py b/electrum/daemon.py index 086f10773..d2f5a4311 100644 --- a/electrum/daemon.py +++ b/electrum/daemon.py @@ -405,29 +405,26 @@ class Daemon(Logger): # wallet_key -> wallet self._wallets = {} # type: Dict[str, Abstract_Wallet] self._wallet_lock = threading.RLock() - daemon_jobs = [] - # Setup commands server - self.commands_server = None - if listen_jsonrpc: - self.commands_server = CommandsServer(self, fd) - daemon_jobs.append(self.commands_server.run()) self._stop_entered = False self._stopping_soon_or_errored = threading.Event() self._stopped_event = threading.Event() + self.taskgroup = OldTaskGroup() - asyncio.run_coroutine_threadsafe(self._run(jobs=daemon_jobs), self.asyncio_loop) + asyncio.run_coroutine_threadsafe(self._run(), self.asyncio_loop) if start_network and self.network: self.start_network() + # Setup commands server + self.commands_server = None + if listen_jsonrpc: + self.commands_server = CommandsServer(self, fd) + asyncio.run_coroutine_threadsafe(self.taskgroup.spawn(self.commands_server.run()), self.asyncio_loop) @log_exceptions - async def _run(self, jobs: Iterable = None): - if jobs is None: - jobs = [] + async def _run(self): self.logger.info("starting taskgroup.") try: async with self.taskgroup as group: - [await group.spawn(job) for job in jobs] await group.spawn(asyncio.Event().wait) # run forever (until cancel) except Exception as e: self.logger.exception("taskgroup died.")