summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2016-09-12 21:25:09 +0300
committerEli Zaretskii <eliz@gnu.org>2016-09-12 21:25:09 +0300
commit2675c79db5745d55d43b78019b1e6a4f84b168fa (patch)
tree5dff547e5a5abacec46ead3752dd60a1df20ffd6 /lisp
parent6d6d9cd607601f41501b8f64230150ae26b8d500 (diff)
Fix daemon shutdown when emacs-kill-hooks ask questions
* lisp/server.el (server-start): Put the server's kill-emacs-hook last, to allow other hooks to have a frame to interact with the user. (Bug#24326)
Diffstat (limited to 'lisp')
-rw-r--r--lisp/server.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/server.el b/lisp/server.el
index 53009849e2..85d51c8ba0 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -648,7 +648,12 @@ server or call `\\[server-force-delete]' to forcibly disconnect it."))
(add-hook 'delete-frame-functions 'server-handle-delete-frame)
(add-hook 'kill-emacs-query-functions
'server-kill-emacs-query-function)
- (add-hook 'kill-emacs-hook 'server-force-stop) ;Cleanup upon exit.
+ ;; We put server's kill-emacs-hook after the others, so that
+ ;; frames are not deleted too early, because doing that
+ ;; would severely degrade our abilities to communicate with
+ ;; the user, while some hooks may wish to ask the user
+ ;; questions (e.g., desktop-kill).
+ (add-hook 'kill-emacs-hook 'server-force-stop t) ;Cleanup upon exit.
(setq server-process
(apply #'make-network-process
:name server-name