diff --git a/artiq/gui/state.py b/artiq/gui/state.py index 1e9be5532..a167e0fcb 100644 --- a/artiq/gui/state.py +++ b/artiq/gui/state.py @@ -71,13 +71,14 @@ class StateManager(TaskObject): async def _do(self): try: - while True: - await asyncio.sleep(self.autosave_period) + try: + while True: + await asyncio.sleep(self.autosave_period) + self.save() + finally: self.save() except asyncio.CancelledError: pass except: logger.error("Uncaught exception attempting to save state", exc_info=True) - finally: - self.save()