mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-06 09:31:39 -05:00
Treat dead kernel status better
This commit is contained in:
parent
34745e740b
commit
5595d8188f
2 changed files with 12 additions and 9 deletions
|
@ -66,12 +66,13 @@ See also `ein:ac-setup-maybe'."
|
|||
(defun ein:events-header-message-kernel ()
|
||||
(case ein:events-status-kernel
|
||||
(status_idle.Kernel nil)
|
||||
(status_busy.Kernel "Kernel is busy...")))
|
||||
(status_busy.Kernel "Kernel is busy...")
|
||||
(status_dead.Kernel "Kernel is dead. Need restart.")))
|
||||
|
||||
(defun ein:events-trigger (event)
|
||||
(ein:log 'debug "Event: %s" event)
|
||||
(case event
|
||||
((status_busy.Kernel status_idle.Kernel)
|
||||
((status_busy.Kernel status_idle.Kernel status_dead.Kernel)
|
||||
(setq ein:events-status-kernel event))
|
||||
((notebook_saving.Notebook
|
||||
notebook_saved.Notebook
|
||||
|
|
|
@ -532,7 +532,12 @@ Do not clear input prompts when the prefix argument is given."
|
|||
(setf (ein:$websocket-onmessage iopub-channel)
|
||||
(lambda (packet)
|
||||
(ein:notebook-handle-iopub-reply notebook packet)))))
|
||||
(ein:log 'info "IPython kernel is started"))
|
||||
;; ein:events stores information in buffer local variable, so I need
|
||||
;; to change buffer:
|
||||
(with-current-buffer (ein:notebook-buffer notebook)
|
||||
;; Clear out previous (possibly dead) status:
|
||||
(ein:events-trigger 'status_idle.Kernel)
|
||||
(ein:log 'info "IPython kernel is started")))
|
||||
|
||||
(defun ein:notebook-handle-shell-reply (notebook packet)
|
||||
(destructuring-bind
|
||||
|
@ -593,18 +598,15 @@ Do not clear input prompts when the prefix argument is given."
|
|||
(ein:events-trigger 'status_busy.Kernel))
|
||||
(("idle")
|
||||
(ein:events-trigger 'status_idle.Kernel))
|
||||
(("dead"))
|
||||
(ein:notebook-handle-status-dead notebook)))
|
||||
(("dead")
|
||||
(ein:kernel-stop-channels (ein:$notebook-kernel notebook))
|
||||
(ein:events-trigger 'status_dead.Kernel))))
|
||||
(("clear_output")
|
||||
(ein:cell-clear-output cell
|
||||
(plist-get content :stdout)
|
||||
(plist-get content :stderr)
|
||||
(plist-get content :other))))))))
|
||||
|
||||
(defun ein:notebook-handle-status-dead (notebook)
|
||||
;; FIXME: do something more useful
|
||||
(ein:log 'info "The kernel has died."))
|
||||
|
||||
(defun ein:notebook-handle-output (notebook cell msg-type content)
|
||||
(let* ((json (list :output_type msg-type)))
|
||||
(ein:case-equal msg-type
|
||||
|
|
Loading…
Add table
Reference in a new issue