diff --git a/qt/aqt/main.py b/qt/aqt/main.py index be5c84a38..5e65fa067 100644 --- a/qt/aqt/main.py +++ b/qt/aqt/main.py @@ -799,9 +799,10 @@ title="%s" %s>%s""" % ( ########################################################################## def setupSignals(self) -> None: - signal.signal(signal.SIGINT, self.onSigInt) + signal.signal(signal.SIGINT, self.onUnixSignal) + signal.signal(signal.SIGTERM, self.onUnixSignal) - def onSigInt(self, signum, frame): + def onUnixSignal(self, signum, frame): # schedule a rollback & quit def quit(): self.col.db.rollback() @@ -1227,6 +1228,9 @@ Difference to correct time: %s.""" self.progress.timer(10 * 60 * 1000, self.onRefreshTimer, True) # check media sync every 5 minutes self.progress.timer(5 * 60 * 1000, self.on_autosync_timer, True) + # ensure Python interpreter runs at least once per second, so that + # SIGINT/SIGTERM is processed without a long delay + self.progress.timer(1000, lambda: None, True, False) def onRefreshTimer(self): if self.state == "deckBrowser":