From 98cecb305ea2aa9629fe6cba6db794a6d283b69f Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 28 Sep 2023 18:28:29 +0200 Subject: [PATCH] jsondb: raise an exception if a daemon thread attempts to write --- electrum/gui/qml/qedaemon.py | 2 +- electrum/json_db.py | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/electrum/gui/qml/qedaemon.py b/electrum/gui/qml/qedaemon.py index f1f015ce0..70bd2684b 100644 --- a/electrum/gui/qml/qedaemon.py +++ b/electrum/gui/qml/qedaemon.py @@ -238,7 +238,7 @@ class QEDaemon(AuthMixin, QObject): self._loading = False self.loadingChanged.emit() - threading.Thread(target=load_wallet_task, daemon=True).start() + threading.Thread(target=load_wallet_task, daemon=False).start() @pyqtSlot() @pyqtSlot(str) diff --git a/electrum/json_db.py b/electrum/json_db.py index d9b7d0e17..38481575c 100644 --- a/electrum/json_db.py +++ b/electrum/json_db.py @@ -391,8 +391,7 @@ class JsonDB(Logger): @locked def _append_pending_changes(self): if threading.current_thread().daemon: - self.logger.warning('daemon thread cannot write db') - return + raise Exception('daemon thread cannot write db') if not self.pending_changes: self.logger.info('no pending changes') return @@ -405,8 +404,7 @@ class JsonDB(Logger): @profiler def _write(self): if threading.current_thread().daemon: - self.logger.warning('daemon thread cannot write db') - return + raise Exception('daemon thread cannot write db') if not self.modified(): return json_str = self.dump(human_readable=not self.storage.is_encrypted())