comparison lisp/server.el @ 82985:8d7be2534cbc

Delete server frames on server restart. lisp/server.el (server-start): Delete any remaining opened frames of the previous server. (server-sentinel, server-process-filter): Force deleting the frame. (server-buffer-done): Ditto. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-25
author Karoly Lorentey <lorentey@elte.hu>
date Tue, 30 Dec 2003 17:42:02 +0000
parents 56e4b7166995
children 1682917e56b4
comparison
equal deleted inserted replaced
82984:3b1f99f17618 82985:8d7be2534cbc
185 ;; Remove PROC from the list of clients. 185 ;; Remove PROC from the list of clients.
186 (when client 186 (when client
187 (setq server-clients (delq client server-clients)) 187 (setq server-clients (delq client server-clients))
188 (let ((frame (assq (car client) server-frames))) 188 (let ((frame (assq (car client) server-frames)))
189 (setq server-frames (delq frame server-frames)) 189 (setq server-frames (delq frame server-frames))
190 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame)))) 190 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame) 'force)))
191 (dolist (buf (cdr client)) 191 (dolist (buf (cdr client))
192 (with-current-buffer buf 192 (with-current-buffer buf
193 ;; Remove PROC from the clients of each buffer. 193 ;; Remove PROC from the clients of each buffer.
194 (setq server-buffer-clients (delq proc server-buffer-clients)) 194 (setq server-buffer-clients (delq proc server-buffer-clients))
195 ;; Kill the buffer if necessary. 195 ;; Kill the buffer if necessary.
265 (condition-case () (delete-file server-socket-name) (error nil)) 265 (condition-case () (delete-file server-socket-name) (error nil))
266 ;; If this Emacs already had a server, clear out associated status. 266 ;; If this Emacs already had a server, clear out associated status.
267 (while server-clients 267 (while server-clients
268 (let ((buffer (nth 1 (car server-clients)))) 268 (let ((buffer (nth 1 (car server-clients))))
269 (server-buffer-done buffer))) 269 (server-buffer-done buffer)))
270 ;; Delete any remaining opened frames of the previous server.
271 (while server-frames
272 (let ((frame (cadar server-frames)))
273 (setq server-frames (cdr server-frames))
274 (when frame-live-p frame (delete-frame frame 'force))))
270 (unless leave-dead 275 (unless leave-dead
271 (if server-process 276 (if server-process
272 (server-log (message "Restarting server"))) 277 (server-log (message "Restarting server")))
273 (letf (((default-file-modes) ?\700)) 278 (letf (((default-file-modes) ?\700))
274 (setq server-process 279 (setq server-process
380 (if (null (cdr client)) 385 (if (null (cdr client))
381 ;; This client is empty; get rid of it immediately. 386 ;; This client is empty; get rid of it immediately.
382 (progn 387 (progn
383 (let ((frame (assq (car client) server-frames))) 388 (let ((frame (assq (car client) server-frames)))
384 (setq server-frames (delq frame server-frames)) 389 (setq server-frames (delq frame server-frames))
385 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame)))) 390 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame) 'force)))
386 (delete-process proc) 391 (delete-process proc)
387 (server-log "Close empty client" proc)) 392 (server-log "Close empty client" proc))
388 ;; We visited some buffer for this client. 393 ;; We visited some buffer for this client.
389 (or nowait (push client server-clients)) 394 (or nowait (push client server-clients))
390 (unless (or isearch-mode (minibufferp)) 395 (unless (or isearch-mode (minibufferp))
469 ;; If client now has no pending buffers, 474 ;; If client now has no pending buffers,
470 ;; tell it that it is done, and forget it entirely. 475 ;; tell it that it is done, and forget it entirely.
471 (unless (cdr client) 476 (unless (cdr client)
472 (let ((frame (assq (car client) server-frames))) 477 (let ((frame (assq (car client) server-frames)))
473 (setq server-frames (delq frame server-frames)) 478 (setq server-frames (delq frame server-frames))
474 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame)))) 479 (when (frame-live-p (cadr frame)) (delete-frame (cadr frame) 'force)))
475 (delete-process (car client)) 480 (delete-process (car client))
476 (server-log "Close" (car client)) 481 (server-log "Close" (car client))
477 (setq server-clients (delq client server-clients)))) 482 (setq server-clients (delq client server-clients))))
478 (setq old-clients (cdr old-clients))) 483 (setq old-clients (cdr old-clients)))
479 (if (and (bufferp buffer) (buffer-name buffer)) 484 (if (and (bufferp buffer) (buffer-name buffer))