Function: majutsu-interactive--retain-temp-dir-for-process

majutsu-interactive--retain-temp-dir-for-process is a natively compiled function defined in majutsu-interactive.el.

Signature

(majutsu-interactive--retain-temp-dir-for-process PROCESS DIRECTORY)

Documentation

Keep DIRECTORY until asynchronous PROCESS exits.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-interactive.el
(defun majutsu-interactive--retain-temp-dir-for-process (process directory)
  "Keep DIRECTORY until asynchronous PROCESS exits."
  (if (and (processp process) (process-live-p process))
      (let ((original (process-sentinel process)))
        (process-put process 'majutsu-interactive-temp-dir directory)
        (process-put process 'majutsu-interactive-original-sentinel
                     original)
        (set-process-sentinel process
                              #'majutsu-interactive--temp-dir-process-sentinel)
        ;; The process can exit after the first liveness check but before the
        ;; replacement sentinel is installed.  In that case the old sentinel
        ;; may already have consumed the only exit event, so clean up here.
        (unless (process-live-p process)
          (ignore-errors (set-process-sentinel process original))
          (process-put process 'majutsu-interactive-temp-dir nil)
          (process-put process 'majutsu-interactive-original-sentinel nil)
          (majutsu-interactive--delete-operation-temp-dir directory))
        t)
    nil))