summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/Activator.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2001-09-03 00:26:54 +0000
committerMarc Laukien <marc@zeroc.com>2001-09-03 00:26:54 +0000
commit45dce7b649d5e7b0e41e1e36d5a8054977dda0a2 (patch)
tree7514176e655ea4aa0ac81dea9a246aec5025c119 /cpp/src/IcePack/Activator.cpp
parentlittle endian (diff)
downloadice-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.cpp12
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__);
+ }
+ }
}
}