emacs-devel
[Top][All Lists]
Advanced

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

Re: Pretest next week


From: Stefan Monnier
Subject: Re: Pretest next week
Date: Wed, 28 Jan 2009 12:40:12 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

> As it turns out, this isn't needed.  SIGALRM is triggering
> alarm_signal_handler() in atimer.c correctly, but run_timers() never  gets
> called under SYNC_INPUT.  I don't fully understand why or where  the problem
> is here.  But undefining SYNC_INPUT gets poll_for_input()  called (and hence
> Ctrl-g detected) even in tight loops, with no ill  effects so far.

I wrote SYNC_INPUT specifically for X11 input handling.  From what you
say above, there is apparently a bug in the way it handles SIGALRM.

Apparently the QUIT macro should check pending_atimers somehow.
Can you try to tweak QUIT so it does

   else if (pending_atimers)
      run_timers;

to see if it fixes your problem?  If so, we should probably create a new
var `pending_signals', which should always reflect
"pending_timers || interrupt_input_pending", then QUIT can check this
var, and if set, it can call a new function `process_pending_signals'
which will then look at pending_timers and interrupt_input_pending to
figure out which function(s) to call.

pending_timers and process_pending_timers are desired/needed to reduce
the code-size (the QUIT macro is expanded at many places), as well as to
reduce the polling overhead.


        Stefan




reply via email to

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