bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#6585: 23.1; Hang / CPU 100% on background interaction when in minibu


From: Stefan Monnier
Subject: bug#6585: 23.1; Hang / CPU 100% on background interaction when in minibuffer
Date: Tue, 31 Aug 2010 12:24:29 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

> Of course, fixing the elisp function is easy and that simply and
> effectively avoids this problem.  Still, I find it disconcerting that I
> can lockup emacs in such a manner.

All code run from timers and from (post|pre)-command-hook (as well as
jit-lock, filters, and a few other things) is run with inhibit-quit set
to t because the user may not know this code is running so if she hits
C-g it "probably" means she wants to interrupt something else.

It's not broken.  Basically, the problem is in your code: such async
code should not run for indefinite amount of time, whereas your code may
inf-loop.

2 solutions:
- fix your code so it doesn't inf-loop (usually the best solution).
- wrap your code in with-local-quit to let C-g interrupt it.

Admittedly, Emacs should also additionally understand something like C-g
C-g C-g C-g as a sign that the user is getting impatient and we should
thus ignore the inhibit-quit flag.  But such a case is always a sign of
a bug somewhere.


        Stefan





reply via email to

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