[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master ed77d1a: Make the multisession files value read more resilient
From: |
Lars Ingebrigtsen |
Subject: |
master ed77d1a: Make the multisession files value read more resilient |
Date: |
Thu, 16 Dec 2021 02:00:14 -0500 (EST) |
branch: master
commit ed77d1a8c0f005d4f158b635d39db0d5d79fe1ee
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Make the multisession files value read more resilient
* lisp/emacs-lisp/multisession.el
(multisession--update-file-value): Make more resilient towards errors.
---
lisp/emacs-lisp/multisession.el | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el
index 0216057..cc7fc53 100644
--- a/lisp/emacs-lisp/multisession.el
+++ b/lisp/emacs-lisp/multisession.el
@@ -252,15 +252,22 @@ DOC should be a doc string, and ARGS are keywords as
applicable to
(url-hexify-string name))
(defun multisession--update-file-value (file object)
- (with-temp-buffer
- (let* ((time (file-attribute-modification-time
- (file-attributes file)))
- (coding-system-for-read 'utf-8))
- (insert-file-contents file)
- (let ((stored (read (current-buffer))))
- (setf (multisession--cached-value object) stored
- (multisession--cached-sequence object) time)
- stored))))
+ (condition-case nil
+ (with-temp-buffer
+ (let* ((time (file-attribute-modification-time
+ (file-attributes file)))
+ (coding-system-for-read 'utf-8))
+ (insert-file-contents file)
+ (let ((stored (read (current-buffer))))
+ (setf (multisession--cached-value object) stored
+ (multisession--cached-sequence object) time)
+ stored)))
+ ;; If the file is contended (could happen with file locking in
+ ;; Windws) or unreadable, just return the current value.
+ (error
+ (if (eq (multisession--cached-value object) multisession--unbound)
+ (multisession--initial-value object)
+ (multisession--cached-value object)))))
(defun multisession--object-file-name (object)
(expand-file-name
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master ed77d1a: Make the multisession files value read more resilient,
Lars Ingebrigtsen <=