[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 3aed4400257 1/2: Shut down jsonrpc server more gracefully
From: |
Eli Zaretskii |
Subject: |
master 3aed4400257 1/2: Shut down jsonrpc server more gracefully |
Date: |
Sat, 27 Apr 2024 05:19:47 -0400 (EDT) |
branch: master
commit 3aed4400257a6762de96be37fa95357b5836363c
Author: Daniel Pettersson <daniel@dpettersson.net>
Commit: Eli Zaretskii <eliz@gnu.org>
Shut down jsonrpc server more gracefully
* lisp/jsonrpc.el (jsonrpc-running-p): Avoid unnecessarily killing
the server process. Suggested by Aaron Zeng <azeng@janestreet.com>.
(Bug#70522)
---
lisp/jsonrpc.el | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lisp/jsonrpc.el b/lisp/jsonrpc.el
index 5037d8c5b2b..111e58cefe2 100644
--- a/lisp/jsonrpc.el
+++ b/lisp/jsonrpc.el
@@ -591,15 +591,18 @@ connection object, called when the process dies.")
(cl-defmethod jsonrpc-shutdown ((conn jsonrpc-process-connection)
&optional cleanup)
"Wait for JSONRPC connection CONN to shutdown.
-With optional CLEANUP, kill any associated buffers."
+With optional CLEANUP, kill any associated buffers.
+If CONN is not shutdown within an reasonable amount of time, warn
+and delete process."
(unwind-protect
(cl-loop
with proc = (jsonrpc--process conn) for i from 0
while (not (process-get proc 'jsonrpc-sentinel-cleanup-started))
unless (zerop i) do
(jsonrpc--warn "Sentinel for %s still hasn't run, deleting it!" proc)
- do
(delete-process proc)
+ do
+ ;; Let sentinel have a chance to run
(accept-process-output nil 0.1))
(when cleanup
(kill-buffer (process-buffer (jsonrpc--process conn)))