From 234b1e3864b8b940f72f3727fe7087cf7e90b43d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Fri, 20 Oct 2017 00:50:34 +0100 Subject: [PATCH] Flymake backends must check proc obsoleteness in source buffer Flymake backends that rely on sentinels running asynchronously and checking buffer-local variables that hold running processes should check for obsoleteness in the correct buffers, otherwise a (harmless) warning might be triggered. * doc/misc/flymake.texi (An annotated example backend): Check buffer-local proc in the current buffer. * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Check buffer-local proc in the current buffer. --- doc/misc/flymake.texi | 2 +- lisp/progmodes/elisp-mode.el | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi index 99ab1271ac9..2aabaf06b73 100644 --- a/doc/misc/flymake.texi +++ b/doc/misc/flymake.texi @@ -600,7 +600,7 @@ Binding,,, elisp, The Emacs Lisp Reference Manual}) to be active. ;; `ruby--flymake-proc', which indicates that ;; `proc' is not an obsolete process. ;; - (if (eq proc ruby--flymake-proc) + (if (with-current-buffer source (eq proc ruby--flymake-proc)) (with-current-buffer (process-buffer proc) (goto-char (point-min)) ;; Parse the output buffer for diagnostic's diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 99a4841e318..41415943a58 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -1693,7 +1693,8 @@ current buffer state and calls REPORT-FN when done." (when (eq (process-status proc) 'exit) (unwind-protect (cond - ((not (eq proc elisp-flymake--byte-compile-process)) + ((not (eq proc (with-current-buffer source-buffer + elisp-flymake--byte-compile-process))) (flymake-log :warning "byte-compile process %s obsolete" proc)) ((zerop (process-exit-status proc)) (elisp-flymake--byte-compile-done report-fn -- 2.39.2