diff options
author | Paul Pogonyshev <pogonyshev@gmail.com> | 2022-07-27 21:20:55 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2022-07-28 09:11:34 +0300 |
commit | 4be938169d6d1fc7bf0f44b78728f21a65317aed (patch) | |
tree | 77d3887fbcd25860e19ff7d89211b8b0012e42ed | |
parent | 4ea1f6c7f84a6f70a184a0e33a0b35ba4950839a (diff) | |
download | emacs-4be938169d6d1fc7bf0f44b78728f21a65317aed.tar.gz |
Release the desktop lock in 'kill-emacs-hook'
* lisp/desktop.el: Run 'desktop--on-kill' in 'kill-emacs-hook'.
(desktop--on-kill): New function, refactored from 'desktop-kill'.
(desktop-kill): Call 'desktop--on-kill'. (Bug#56800)
-rw-r--r-- | lisp/desktop.el | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lisp/desktop.el b/lisp/desktop.el index 041dbcf7c11..9cd26646dec 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -733,7 +733,10 @@ if different)." ;; ---------------------------------------------------------------------------- (unless noninteractive - (add-hook 'kill-emacs-query-functions #'desktop-kill)) + (add-hook 'kill-emacs-query-functions #'desktop-kill) + ;; Certain things should be done even if + ;; `kill-emacs-query-functions' are not called. + (add-hook 'kill-emacs-hook #'desktop--on-kill)) (defun desktop-kill () "If `desktop-save-mode' is non-nil, do what `desktop-save' says to do. @@ -760,12 +763,15 @@ is nil, ask the user where to save the desktop." (file-error (unless (yes-or-no-p "Error while saving the desktop. Ignore? ") (signal (car err) (cdr err)))))) + (desktop--on-kill) + t) + +(defun desktop--on-kill () ;; If we own it, we don't anymore. (when (eq (emacs-pid) (desktop-owner)) ;; Allow exiting Emacs even if we can't delete the desktop file. (ignore-error 'file-error - (desktop-release-lock))) - t) + (desktop-release-lock)))) ;; ---------------------------------------------------------------------------- (defun desktop-list* (&rest args) |