Call SIGNAL_THREAD_CHECK from signal handlers.

* keyboard.c (input_available_signal) [SYNC_INPUT]:
Call SIGNAL_THREAD_CHECK (Bug#5333).

* atimer.c (alarm_signal_handler) [!SYNC_INPUT]:
Call SIGNAL_THREAD_CHECK.
This commit is contained in:
YAMAMOTO Mitsuharu 2010-01-13 13:42:45 +09:00
parent 0b5397c271
commit c2623ee747
3 changed files with 14 additions and 2 deletions

View file

@ -1,3 +1,11 @@
2010-01-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* keyboard.c (input_available_signal) [SYNC_INPUT]:
Call SIGNAL_THREAD_CHECK (Bug#5333).
* atimer.c (alarm_signal_handler) [!SYNC_INPUT]:
Call SIGNAL_THREAD_CHECK.
2010-01-13 Stefan Monnier <monnier@iro.umontreal.ca>
Try to fix bug#5314. This is probably not the final word, tho.

View file

@ -410,6 +410,10 @@ SIGTYPE
alarm_signal_handler (signo)
int signo;
{
#ifndef SYNC_INPUT
SIGNAL_THREAD_CHECK (signo);
#endif
pending_atimers = 1;
#ifdef SYNC_INPUT
pending_signals = 1;

View file

@ -7513,11 +7513,11 @@ input_available_signal (signo)
signal (signo, input_available_signal);
#endif /* USG */
SIGNAL_THREAD_CHECK (signo);
#ifdef SYNC_INPUT
interrupt_input_pending = 1;
pending_signals = 1;
#else
SIGNAL_THREAD_CHECK (signo);
#endif
if (input_available_clear_time)