* subshell.c: Assume that SIGTSTP and SIGCONT are always
defined. This is now checked in configure. Otherwise synchronize() would hang until subshell exits.
Этот коммит содержится в:
родитель
23e56a01e1
Коммит
e26cef8825
@ -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) */
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user