From 7373e485d3314e8a7085c4d1d9cea9f270445c45 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Wed, 31 Jul 2002 04:04:47 +0000 Subject: A couple of small bugfixes from Marshall M. Midden --- shell/lash.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'shell/lash.c') diff --git a/shell/lash.c b/shell/lash.c index 16401225e..11e7dec70 100644 --- a/shell/lash.c +++ b/shell/lash.c @@ -1462,8 +1462,11 @@ static int busy_loop(FILE * input) while (!job_list.fg->progs[i].pid || job_list.fg->progs[i].is_stopped == 1) i++; - if (waitpid(job_list.fg->progs[i].pid, &status, WUNTRACED)<0) - perror_msg_and_die("waitpid(%d)",job_list.fg->progs[i].pid); + if (waitpid(job_list.fg->progs[i].pid, &status, WUNTRACED)<0) { + if (errno != ECHILD) { + perror_msg_and_die("waitpid(%d)",job_list.fg->progs[i].pid); + } + } if (WIFEXITED(status) || WIFSIGNALED(status)) { /* the child exited */ @@ -1500,7 +1503,7 @@ static int busy_loop(FILE * input) free(command); /* return controlling TTY back to parent process group before exiting */ - if (tcsetpgrp(shell_terminal, parent_pgrp)) + if (tcsetpgrp(shell_terminal, parent_pgrp) && errno != ENOTTY) perror_msg("tcsetpgrp"); /* return exit status if called with "-c" */ -- cgit v1.2.3