summaryrefslogtreecommitdiff
path: root/tools/hi-q.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/hi-q.c')
-rw-r--r--tools/hi-q.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/hi-q.c b/tools/hi-q.c
index 32b0a7b..8f0fb93 100644
--- a/tools/hi-q.c
+++ b/tools/hi-q.c
@@ -327,12 +327,14 @@ int main(int argc, char** argv, char const * const * env) {
//xx fprintf(stderr, "slurping %d %d\n", 1, loose_end);
-// All is well.
+// All filters agree this is not spam.
// Now it is safe to transfer the envelope information:
slurp(1, loose_end);
close(1);
close(loose_end);
+// now that the envelope information has been transfered,
+// wait for the last kid in the usual way
{
int ii = nkids-1;
@@ -342,12 +344,17 @@ fprintf(stderr, "About to wait for kid #%d (%d)\n",
blurb(nkids-1, kidpid);
#endif
somekid = waitpid(kidpid[ii], &kidstatus, WUNTRACED);
- if (WIFEXITED(kidstatus)) return WEXITSTATUS(kidstatus);
+ if (WIFEXITED(kidstatus)) {
+ int sts = WEXITSTATUS(kidstatus);
+ cerr << "hi-q ends with status: " << sts << endl;
+ return sts;
+ }
}
#ifdef testing
sleep(1);
#endif
- return ex_syserr; // any kill, not a normal exit
+// the last kid did not exit but was killed:
+ return ex_syserr;
}