[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: |
Jason S. Cornez |
Subject: |
bug#6585: 23.1; Hang / CPU 100% on background interaction when in minibuffer |
Date: |
Tue, 31 Aug 2010 17:09:49 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9pre) Gecko/20100821 Lanikai/3.1.3pre ThunderBrowse/3.3.2 |
On 08/31/2010 03:09 PM, Stefan Monnier wrote:
> 100% agreement. Patch welcome,
>
>
> Stefan
How about something like this...
----8<----
src/keyboard.c /usr/local/emacs-23.2/src/keyboard.c
*** src/keyboard.c 2010-04-04 00:26:07.000000000 +0200
--- /usr/local/emacs-23.2/src/keyboard.c 2010-08-31
17:03:14.648740153 +0200
*************** interrupt_signal (signalnum) /* If we do
*** 11122,11127 ****
--- 11122,11136 ----
errno = old_errno;
}
+
+ /* JSC: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6585 */
+
+ /* If emacs is stuck because `inhibit-quit' is true, then keep track
+ of the number of times C-g has been requested. If C-g is pressed 3
+ times, then quit anyway. If `debug-on-quit' is true, then it is
+ honored when the quit occurs after the third C-g. */
+ static int force_quit_count;
+
/* This routine is called at interrupt level in response to C-g.
It is called from the SIGINT handler or kbd_buffer_store_event.
*************** handle_interrupt ()
*** 11239,11246 ****
UNGCPRO;
}
else
! /* Else request quit when it's safe */
! Vquit_flag = Qt;
}
/* TODO: The longjmp in this call throws the NS event loop integration
off,
--- 11248,11266 ----
UNGCPRO;
}
else
! {
! /* Else request quit when it's safe */
! if (NILP (Vquit_flag))
! {
! force_quit_count = 0;
! }
! if (++force_quit_count == 3)
! {
! immediate_quit = 1;
! Vinhibit_quit = Qnil;
! }
! Vquit_flag = Qt;
! }
}
/* TODO: The longjmp in this call throws the NS event loop integration
off,
----8<----
This does indeed solve the problem for me. But I freely admit that I've
never done emacs development before and so something more may be
required or desired. Anyway, this is certain a start and I hope it helps.
Best,
-Jason