From f8b42418db515124d91bd8359fb675da121c57cd Mon Sep 17 00:00:00 2001 From: Bram Schoenmakers Date: Wed, 17 May 2023 16:27:49 +0200 Subject: [PATCH] Check that timer is not already running persist-state--enable is called every time the minor mode is enabled, without checking for the timer's existence. This causes multiple timers to be created, so multiple save actions. --- persist-state.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/persist-state.el b/persist-state.el index 0e76622..7109951 100644 --- a/persist-state.el +++ b/persist-state.el @@ -109,10 +109,12 @@ is added as-is, otherwise it's wrapped in a lambda performing an (interactive) (persist-state--enable-packages) - (setq persist-state--save-state-timer - (persist-state--regularly-run-on-idle persist-state-save-interval - persist-state-wait-idle - #'persist-state--save-state))) + ;; only start the timer once + (when (null (timerp persist-state--save-state-timer)) + (setq persist-state--save-state-timer + (persist-state--regularly-run-on-idle persist-state-save-interval + persist-state-wait-idle + #'persist-state--save-state)))) (defun persist-state--disable () "Stop saving the Emacs state."