From 9f8eec3979d03f1813ee352834c1199b0891a242 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Mon, 17 May 1999 12:39:19 +0000 Subject: [PATCH] Wait for children from chain_open() From-SVN: r26972 --- gcc/ChangeLog | 7 +++++++ gcc/fixinc/fixincl.c | 7 +++++++ gcc/fixinc/inclhack.tpl | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0a38aef0ebd..97a7e39d497 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Mon May 17 19:45:41 1999 Rainer Orth + + * fixinc/fixincl.c (process): Wait for children from chain_open() + to avoid creating zombies. + + * fixinc/inclhack.tpl: Removed no-op pipe. + Mon May 17 07:23:34 1999 Mark Mitchell * tree.def (TYPE_NONCOPIED_PARTS): Revise documentation to match diff --git a/gcc/fixinc/fixincl.c b/gcc/fixinc/fixincl.c index 47c9ef1344a..f4d76bb1d15 100644 --- a/gcc/fixinc/fixincl.c +++ b/gcc/fixinc/fixincl.c @@ -938,6 +938,7 @@ process (pz_data, pz_file_name) tFixDesc *p_fixd = fixDescList; int todo_ct = FIX_COUNT; t_fd_pair fdp = { -1, -1 }; + int num_children = 0; /* IF this is the first time through, THEN put the 'file' environment variable into the environment. @@ -1086,6 +1087,7 @@ process (pz_data, pz_file_name) if (fd != -1) { fdp.read_fd = fd; + num_children++; break; } @@ -1172,4 +1174,9 @@ process (pz_data, pz_file_name) fclose (in_fp); } close (fdp.read_fd); /* probably redundant, but I'm paranoid */ + + /* Wait for child processes created by chain_open() + to avoid creating zombies. */ + while (--num_children >= 0) + wait ((int *) NULL); } diff --git a/gcc/fixinc/inclhack.tpl b/gcc/fixinc/inclhack.tpl index c2b3b513f30..f5153bf0892 100644 --- a/gcc/fixinc/inclhack.tpl +++ b/gcc/fixinc/inclhack.tpl @@ -405,7 +405,7 @@ echo 'Removing unneeded directories:' cd $LIB all_dirs=`find . -type d -print | sort -r` for file in $all_dirs; do - rmdir $LIB/$file > /dev/null 2>&1 | : + rmdir $LIB/$file > /dev/null 2>&1 done # # # # # # # # # # # # # # # # # # # # # -- 2.30.2