From 1bf5be5d37f5bd72aecd2ee266d069d9a9cafc10 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Thu, 28 Mar 2019 18:04:35 +0000 Subject: [PATCH] More carefully cleanup Flymake C/C++ backend's temp buffers Sometimes the Flymake process dies by some means that doesn't involve a sentinel call for the "exit" status, so we clean up the temporary buffer as soon as we notice it's not process-alive-p anymore. * lisp/progmodes/flymake-cc.el (flymake-cc): Broaden cleanup conditions. --- lisp/progmodes/flymake-cc.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/flymake-cc.el b/lisp/progmodes/flymake-cc.el index 5733ef4d666..ecf6e648a7e 100644 --- a/lisp/progmodes/flymake-cc.el +++ b/lisp/progmodes/flymake-cc.el @@ -120,8 +120,8 @@ REPORT-FN is Flymake's callback." :noquery t :connection-type 'pipe :sentinel (lambda (p _ev) - (when (eq 'exit (process-status p)) - (unwind-protect + (unwind-protect + (when (eq 'exit (process-status p)) (when (with-current-buffer source (eq p flymake-cc--proc)) (with-current-buffer (process-buffer p) (goto-char (point-min)) @@ -135,7 +135,8 @@ REPORT-FN is Flymake's callback." :panic :explanation (buffer-substring (point-min) (progn (goto-char (point-min)) - (line-end-position)))))))) + (line-end-position))))))))) + (unless (process-live-p p) ;; (display-buffer (process-buffer p)) ; uncomment to debug (kill-buffer (process-buffer p))))))) (process-send-region flymake-cc--proc (point-min) (point-max)) -- 2.39.2