[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 1589328: Be more efficient when checking for a matching client in
From: |
Lars Ingebrigtsen |
Subject: |
master 1589328: Be more efficient when checking for a matching client in server.el |
Date: |
Wed, 27 Oct 2021 09:54:55 -0400 (EDT) |
branch: master
commit 158932894b68f58a4417d2fe400dfb593e1067a0
Author: Jim Porter <jporterbugs@gmail.com>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Be more efficient when checking for a matching client in server.el
lisp/server.el (server-handle-delete-frame): Use 'seq-some' to
determine if another frame for the current client exists.
(server-kill-emacs-query-function): Use 'seq-some' to determine if
another live client exists (bug#51420).
---
lisp/server.el | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/lisp/server.el b/lisp/server.el
index 5306a54..d998656 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -485,11 +485,11 @@ If CLIENT is non-nil, add a description of it to the
logged message."
(when (and (frame-live-p frame)
proc
;; See if this is the last frame for this client.
- (>= 1 (let ((frame-num 0))
- (dolist (f (frame-list))
- (when (eq proc (frame-parameter f 'client))
- (setq frame-num (1+ frame-num))))
- frame-num)))
+ (not (seq-some
+ (lambda (f)
+ (and (not (eq frame f))
+ (eq proc (frame-parameter f 'client))))
+ (frame-list))))
(server-log (format "server-handle-delete-frame, frame %s" frame) proc)
(server-delete-client proc 'noframe)))) ; Let delete-frame delete the
frame later.
@@ -1580,13 +1580,13 @@ specifically for the clients and did not exist before
their request for it."
(server-buffer-done (current-buffer))))
(defun server-kill-emacs-query-function ()
- "Ask before exiting Emacs if it has live clients."
- (or (not (let (live-client)
- (dolist (proc server-clients)
- (when (memq t (mapcar #'buffer-live-p
- (process-get proc 'buffers)))
- (setq live-client t)))
- live-client))
+ "Ask before exiting Emacs if it has live clients.
+A \"live client\" is a client with at least one live buffer
+associated with it."
+ (or (not (seq-some (lambda (proc)
+ (seq-some #'buffer-live-p
+ (process-get proc 'buffers)))
+ server-clients))
(yes-or-no-p "This Emacs session has clients; exit anyway? ")))
(defun server-kill-buffer ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 1589328: Be more efficient when checking for a matching client in server.el,
Lars Ingebrigtsen <=