emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals-release/activities ee287a1986 015/103: WIP


From: ELPA Syncer
Subject: [elpa] externals-release/activities ee287a1986 015/103: WIP
Date: Tue, 30 Jan 2024 03:57:46 -0500 (EST)

branch: externals-release/activities
commit ee287a19867d1584b6701453836cc7283b12c3e6
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    WIP
---
 activity.el | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/activity.el b/activity.el
index acfe1afef2..1e8d2b7aea 100644
--- a/activity.el
+++ b/activity.el
@@ -247,10 +247,12 @@ If DEFAULTP, save its default state; if LASTP, its last."
     (bookmark-store name record nil)))
 
 (defun activity-save-all ()
-  "Save all active activities' last states."
+  "Save all active activities' last states.
+In order to be safe for `kill-emacs-hook', this demotes errors."
   (interactive)
-  (dolist (activity (cl-remove-if-not #'activity-active-p 
(activity-activities)))
-    (activity-save activity :lastp t)))
+  (with-demoted-errors "activity-save-all: ERROR: %S"
+    (dolist (activity (cl-remove-if-not #'activity-active-p 
(activity-activities)))
+      (activity-save activity :lastp t))))
 
 ;;;; Activity mode
 
@@ -275,11 +277,13 @@ accordingly."
   :group 'activity
   (if activity-mode
       (progn
-        (setf activity-mode-timer (run-at-time activity-mode-idle-frequency 
activity-mode-idle-frequency
-                                               #'activity-save-all)))
+        (setf activity-mode-timer
+              (run-with-idle-timer activity-mode-idle-frequency t 
#'activity-save-all))
+        (add-hook 'kill-emacs-hook #'activity-save-all))
     (when (timerp activity-mode-timer)
       (cancel-timer activity-mode-timer)
-      (setf activity-mode-timer nil))))
+      (setf activity-mode-timer nil))
+    (remove-hook 'kill-emacs-hook #'activity-save-all)))
 
 ;;;; Functions
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]