[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15561: periodic timer stops running
From: |
Barry OReilly |
Subject: |
bug#15561: periodic timer stops running |
Date: |
Fri, 28 Feb 2014 09:43:41 -0500 |
> Are you talking about a SIGALRM received during the execution of
> do_pending_atimers, between run_timer's call to set_alarm and
> do_pending_atimers's call to unblock_atimers? If so, the SIGALRM
> should be held by the operating system during that period, and Emacs
> won't be informed of the SIGALRM until unblock_atimers does its
> thing. Sorry, I don't see how this would cause a timer to stop.
I see you're right, because SIGALRM isn't specified with SIG_IGN at
any point.
While verifying that, I found in sys_subshell:
struct save_signal saved_handlers[5];
[...]
#ifdef USABLE_SIGIO
saved_handlers[3].code = SIGIO;
saved_handlers[4].code = 0;
#else
saved_handlers[3].code = 0;
#endif
Shouldn't the else case initialize saved_handlers[4]? On the off
chance it is garbage valued coincidentally as SIGALRM, the subsequent
SIG_IGN could drop a pending SIGALRM.
Peter, which OS do you run? What is USABLE_SIGIO in your src/config.h?