emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnus makes emacs lose response


From: Chong Yidong
Subject: Re: gnus makes emacs lose response
Date: Fri, 22 Sep 2006 16:04:27 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

After some communication with Leon, I found out that `gnus-demon' was
being called with inhibit-quit set to t.  This is done by timer_check
in keyboard.c:4528.

      /* Mark the timer as triggered to prevent problems if the lisp
         code fails to reschedule it right.  */
      vector[0] = Qt;

      specbind (Qinhibit_quit, Qt);

      call1 (Qtimer_event_handler, chosen_timer);

This behavior is documented in the Lisp Reference manual:

   Emacs binds `inhibit-quit' to `t' before calling the timer
   function, because quitting out of many timer functions can leave
   things in an inconsistent state.  This is normally unproblematical
   because most timer functions don't do a lot of work.  Indeed, for a
   timer to call a function that takes substantial time to run is
   likely to be annoying.

However, the result is that when the `gnus-demon' timer function calls
accept-process-output, it can't be interrupted.

I'm not sure what the best way to handle this is.  Anyone?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]