]> git.eshelyaron.com Git - emacs.git/commitdiff
Release the desktop lock in 'kill-emacs-hook'
authorPaul Pogonyshev <pogonyshev@gmail.com>
Wed, 27 Jul 2022 19:20:55 +0000 (21:20 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 28 Jul 2022 06:11:34 +0000 (09:11 +0300)
* 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)

lisp/desktop.el

index 041dbcf7c11586f036f98e27e885e63bf0a6745e..9cd26646dec35527213f75f34347e8151558cfda 100644 (file)
@@ -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)