From 1bafe5ed816ba1da59994ae14c36e26e30c42a14 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 11 Aug 1993 19:32:02 +0000 Subject: Formerly job.c.~106~ --- job.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/job.c b/job.c index 88892a4..fb0f22e 100644 --- a/job.c +++ b/job.c @@ -204,7 +204,7 @@ reap_children (block, err) int exit_code, exit_sig, coredump; register struct child *lastc, *c; int child_failed; - int any_remote; + int any_remote, any_local; if (err && dead_children == 0) { @@ -229,9 +229,11 @@ reap_children (block, err) --dead_children; any_remote = 0; + any_local = shell_function_pid != -1; for (c = children; c != 0; c = c->next) { any_remote |= c->remote; + any_locate != ! c->remote; if (debug_flag) printf ("Live child 0x%08lx PID %d%s\n", (unsigned long int) c, @@ -256,12 +258,17 @@ reap_children (block, err) { /* No remote children. Check for local children. */ + if (any_local) + { #ifdef WAIT_NOHANG - if (!block) - pid = WAIT_NOHANG (&status); - else + if (!block) + pid = WAIT_NOHANG (&status); + else #endif - pid = wait (&status); + pid = wait (&status); + } + else + pid = 0; if (pid < 0) { -- cgit v1.2.3