• Paul Eggert's avatar
    Handle sigmask better with nested signal handlers. · 1e952f0a
    Paul Eggert authored
    * atimer.c (sigmask_atimers): Remove.
    Remaining use rewritten to use body of this function.
    * atimer.c (block_atimers, unblock_atimers):
    * callproc.c (block_child_signal, unblock_child_signal):
    * sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
    New arg OLDSET.  All callers changed.
    * atimer.c (block_atimers, unblock_atimers):
    * callproc.c (block_child_signal, unblock_child_signal):
    * keyboard.c (handle_interrupt):
    * sound.c (vox_configure, vox_close):
    Restore the old signal mask rather than unilaterally clearing bits
    from the mask, in case a handler is running within another
    handler.  All callers changed.
    * lisp.h, process.c, process.h, term.c:
    Adjust decls and callers to match new API.
    * sysdep.c (emacs_sigaction_init): Don't worry about masking SIGFPE;
    signal handlers aren't supposed to use floating point anyway.
    (handle_arith_signal): Unblock just SIGFPE rather than clearing mask.
    
    Fixes: debbugs:15561
    1e952f0a
ChangeLog 395 KB