1
1

* subshell.c: Assume that SIGTSTP and SIGCONT are always

defined.  This is now checked in configure.  Otherwise
synchronize() would hang until subshell exits.
Этот коммит содержится в:
Pavel Roskin 2002-08-04 06:59:34 +00:00
родитель 23e56a01e1
Коммит e26cef8825
2 изменённых файлов: 6 добавлений и 6 удалений

Просмотреть файл

@ -1,3 +1,9 @@
2002-08-04 Pavel Roskin <proski@gnu.org>
* subshell.c: Assume that SIGTSTP and SIGCONT are always
defined. This is now checked in configure. Otherwise
synchronize() would hang until subshell exits.
2002-08-01 Pavel Roskin <proski@gnu.org>
* charsets.c: Unconditionally enable finalization code that was

Просмотреть файл

@ -892,7 +892,6 @@ void sigchld_handler (int sig)
if (pid == subshell_pid) {
/* {{{ Figure out what has happened to the subshell */
# ifdef SIGTSTP
if (WIFSTOPPED (status))
{
if (WSTOPSIG (status) == SIGTSTP)
@ -903,7 +902,6 @@ void sigchld_handler (int sig)
subshell_stopped = TRUE;
}
else /* The subshell has either exited normally or been killed */
# endif
{
subshell_alive = FALSE;
delete_select_channel (subshell_pty);
@ -919,12 +917,10 @@ void sigchld_handler (int sig)
if (pid == cons_saver_pid) {
# ifdef SIGTSTP
if (WIFSTOPPED (status))
/* Someone has stopped cons.saver - restart it */
kill (pid, SIGCONT);
else
# endif
{
/* cons.saver has died - disable confole saving */
handle_console (CONSOLE_DONE);
@ -1086,9 +1082,7 @@ static void synchronize (void)
while (subshell_alive && !subshell_stopped)
sigsuspend (&old_mask);
subshell_stopped = FALSE;
# ifdef SIGTSTP
kill (subshell_pid, SIGCONT);
# endif
sigprocmask (SIG_SETMASK, &old_mask, NULL);
/* We can't do any better without modifying the shell(s) */