[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