diff options
author | Marc Laukien <marc@zeroc.com> | 2001-09-03 00:26:54 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2001-09-03 00:26:54 +0000 |
commit | 45dce7b649d5e7b0e41e1e36d5a8054977dda0a2 (patch) | |
tree | 7514176e655ea4aa0ac81dea9a246aec5025c119 /cpp/src/IcePack/Activator.cpp | |
parent | little endian (diff) | |
download | ice-45dce7b649d5e7b0e41e1e36d5a8054977dda0a2.tar.bz2 ice-45dce7b649d5e7b0e41e1e36d5a8054977dda0a2.tar.xz ice-45dce7b649d5e7b0e41e1e36d5a8054977dda0a2.zip |
fixes
Diffstat (limited to 'cpp/src/IcePack/Activator.cpp')
-rw-r--r-- | cpp/src/IcePack/Activator.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cpp/src/IcePack/Activator.cpp b/cpp/src/IcePack/Activator.cpp index ecc3a84da62..a75bc1b4874 100644 --- a/cpp/src/IcePack/Activator.cpp +++ b/cpp/src/IcePack/Activator.cpp @@ -13,6 +13,7 @@ #include <IcePack/Admin.h> #include <sstream> #include <fcntl.h> +#include <sys/wait.h> using namespace std; using namespace Ice; @@ -296,6 +297,17 @@ IcePack::Activator::terminationListener() } } } + + // + // Remove zombie processes, if any + // + if (waitpid(-1, 0, WNOHANG | WUNTRACED) == -1) + { + if (errno != ECHILD) // Ignore ECHILD + { + throw SystemException(__FILE__, __LINE__); + } + } } } |