From 2226667437634bd45b40290084ad97e9895bbd08 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sun, 20 Dec 2015 16:15:33 +0900 Subject: [PATCH] QT: Stop timer cleanly to avoid exceptions on exit --- gui/qt/__init__.py | 3 +++ gui/qt/util.py | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py index 14fb0100a..2a66bd1fb 100644 --- a/gui/qt/__init__.py +++ b/gui/qt/__init__.py @@ -245,6 +245,9 @@ class ElectrumGui: # main loop self.app.exec_() + # Shut down the timer cleanly + self.timer.stop() + # clipboard persistence. see http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg17328.html event = QtCore.QEvent(QtCore.QEvent.Clipboard) self.app.sendEvent(self.app.clipboard(), event) diff --git a/gui/qt/util.py b/gui/qt/util.py index 8ee62c65a..9ceaf11f8 100644 --- a/gui/qt/util.py +++ b/gui/qt/util.py @@ -61,11 +61,16 @@ class WaitingDialog(QThread): class Timer(QThread): + stopped = False + def run(self): - while True: + while not self.stopped: self.emit(SIGNAL('timersignal')) time.sleep(0.5) + def stop(self): + self.stopped = True + self.wait() class EnterButton(QPushButton): def __init__(self, text, func):