Function: nrepl-server-sentinel
nrepl-server-sentinel is a byte-compiled function defined in
nrepl-client.el.
Signature
(nrepl-server-sentinel PROCESS EVENT)
Documentation
Handle nREPL server PROCESS EVENT.
If the nREPL PROCESS failed to initiate and encountered a fatal EVENT
signal, raise an error. Additionally, if the EVENT signal is SIGHUP,
close any existing client connections.
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20260822.1520/nrepl-client.el
(defun nrepl-server-sentinel (process event)
"Handle nREPL server PROCESS EVENT.
If the nREPL PROCESS failed to initiate and encountered a fatal EVENT
signal, raise an `error'. Additionally, if the EVENT signal is SIGHUP,
close any existing client connections."
;; only interested on fatal signals.
(unless (process-live-p process)
(let* ((server-buffer (process-buffer process))
(clients (seq-filter (lambda (b)
(eq (buffer-local-value 'nrepl-server-buffer b)
server-buffer))
(buffer-list))))
;; see https://github.com/clojure-emacs/cider/pull/3333
(when (and (string-match-p "^hangup" event)
nrepl-close-connection-handler-function)
(mapc nrepl-close-connection-handler-function clients))
(if (process-get process :nrepl-server-ready)
(progn
(when server-buffer (kill-buffer server-buffer))
(message "nREPL server exited."))
(let ((problem (when (and server-buffer (buffer-live-p server-buffer))
(with-current-buffer server-buffer
(buffer-substring (point-min) (point-max))))))
(error "Could not start nREPL server: %s (%S)" problem (string-trim event)))))))