• Paul Eggert's avatar
    Remove configure's --without-sync-input option. · 0caaedb1
    Paul Eggert authored
    When auditing signal-handling in preparation for cleaning it up,
    I found that SYNC_INPUT has race conditions and would be a real
    pain to fix.  Since it's an undocumented and deprecated
    configure-time option, now seems like a good time to remove it.
    Also see <http://bugs.gnu.org/11080#16>.
    * configure.ac (SYNC_INPUT, BROKEN_SA_RESTART): Remove.
    * admin/CPP-DEFINES (BROKEN_SA_RESTART, SA_RESTART): Remove.
    * etc/TODO (Make SYNC_INPUT the default): Remove, as the code now
    behaves as if SYNC_INPUT is always true.
    * src/alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
    (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
    (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
    (malloc_hysteresis):
    (check_depth) [XMALLOC_OVERRUN_CHECK]:
    (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
    (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
    (dont_register_blocks, bytes_used_when_reconsidered)
    (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
    (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
    [!SYSTEM_MALLOC && !SYNC_INPUT]:
    Remove. All uses removed.
    (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
    implementation, one that depends on whether the new macro
    XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
    is defined.
    * src/atimer.c (run_timers, handle_alarm_signal):
    * src/keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
    (handle_async_input, process_pending_signals)
    (handle_input_available_signal, init_keyboard):
    * src/nsterm.m (ns_read_socket):
    * src/process.c (wait_reading_process_output):
    * src/regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
    * src/sysdep.c (emacs_sigaction_init) [SA_RESTART]:
    (emacs_write):
    * src/xterm.c (XTread_socket):
    Assume SYNC_INPUT.
    * src/conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
    * src/eval.c (handling_signal): Remove.  All uses removed.
    * src/lisp.h (ELSE_PENDING_SIGNALS): Remove.
    All uses replaced with the SYNC_INPUT version.
    (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
    Remove decls.
    * src/sysdep.c, src/syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
    Now static.
    
    Fixes: debbugs:12450
    0caaedb1
syssignal.h 1.88 KB