Subject: Re: bug#11868: 24.1.50; [python-mode] Blocking call to accept-process-output with quit inhibited!! (message buffer)

From: Yagnesh Raghava Yakkala <[email-masked]>
Date: Wed, 11 Jul 2012 03:18:39 +0900

Hello Glenn,

Yagnesh Raghava Yakkala <[email-masked]> writes:

> Hello Glenn,
>
> Glenn Morris <[email-masked]> writes:
>
>> Yagnesh Raghava Yakkala wrote:
>>
>>> I see this message when ever I try to use completion feature in python-mode.
>>
>> Which mode for python? The one that comes with Emacs?
>> ("python-mode.el" does not.)
>
> I meant "python.el" shipped with emacs trunk. sorry for not being clear.
>
>>
>>> http://lists.gnu.org/archive/html/emacs-devel/2010-09/msg00199.html
>>>
>>> I couldn't understand what was discussed in that thread.
>>
>> http://lists.gnu.org/archive/html/emacs-devel/2010-09/msg00201.html
>>
>> seems fairly clear. python mode should consider adding a with-local-quit
>> somewhere in its completion code.
>
> I could suppress the warning by wrapping function "with-local-quit". But It
> seems python completion function is interacting with inferior process through
> the comint mode, does it mean problem is in comint.? 

may be not,

with some trail and error, the following patch is suppressing the warning.

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index ddedbdb..d6bb724 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1609,7 +1609,8 @@ the output."
                       (setq output-buffer (concat output-buffer string))
                       "")))))
     (python-shell-send-string string process msg)
-    (accept-process-output process)
+    (with-local-quit
+      (accept-process-output process))
     (replace-regexp-in-string
      (if (> (length python-shell-prompt-output-regexp) 0)
          (format "\n*%s$\\|^%s\\|\n$"

Thanks.,
-- 
ఎందరో మహానుభావులు అందరికి వందనములు
YYR