• Eli Zaretskii's avatar
    Fix bug #12829 with aborts on MS-Windows when several child processes die. · 22bae83f
    Eli Zaretskii authored
     nt/inc/sys/wait.h: New file, with prototype of waitpid and
     definitions of macros it needs.
     nt/inc/ms-w32.h (wait): Don't define, 'wait' is not used anymore.
     (sys_wait): Remove prototype.
     nt/config.nt (HAVE_SYS_WAIT_H): Define to 1.
    
     src/w32proc.c (create_child): Don't clip the PID of the child
     process to fit into an Emacs integer, as this is no longer a
     restriction.
     (waitpid): Rename from sys_wait.  Emulate a Posix 'waitpid' by
     reaping only the process specified by PID argument, if that is
     positive.  Use PID instead of dead_child to know which process to
     reap.  Wait for the child to die only if WNOHANG is not in
     OPTIONS.
     (sys_select): Don't set dead_child.
     src/sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
     as it is no longer needed.
     src/process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
     no longer needed.
     (record_child_status_change): Remove the setting of
     record_at_most_one_child for the !WNOHANG case.
    22bae83f
sysdep.c 88.5 KB