summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/IcePackNode.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2004-01-06 15:22:42 +0000
committerBenoit Foucher <benoit@zeroc.com>2004-01-06 15:22:42 +0000
commitd9a1ea800eade43032368f05e7f0279823146a9c (patch)
treec325291a63cfd392ff286d60aa6cba06ae08da9e /cpp/src/IcePack/IcePackNode.cpp
parentminor (diff)
downloadice-d9a1ea800eade43032368f05e7f0279823146a9c.tar.bz2
ice-d9a1ea800eade43032368f05e7f0279823146a9c.tar.xz
ice-d9a1ea800eade43032368f05e7f0279823146a9c.zip
Fix
Diffstat (limited to 'cpp/src/IcePack/IcePackNode.cpp')
-rw-r--r--cpp/src/IcePack/IcePackNode.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/cpp/src/IcePack/IcePackNode.cpp b/cpp/src/IcePack/IcePackNode.cpp
index dde17b3d56f..44f1bfd96a4 100644
--- a/cpp/src/IcePack/IcePackNode.cpp
+++ b/cpp/src/IcePack/IcePackNode.cpp
@@ -77,13 +77,20 @@ childHandler(int)
// process and avoid zombie processes. See man wait or waitpid for
// more information.
//
- pid_t childPid;
+ int olderrno = errno;
+
+ pid_t pid;
do
- {
- int status;
- childPid = waitpid(-1, &status, WNOHANG);
- } while(childPid > 0);
+ {
+ pid = waitpid(-1, 0, WNOHANG);
+ }
+ while(pid > 0);
+
+ assert(pid != -1 || errno == ECHILD);
+
+ errno = olderrno;
}
+
}
#endif