projects
/
ghc-base.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2005-03-14 15:22:51 by simonmar]
[ghc-base.git]
/
cbits
/
runProcess.c
diff --git
a/cbits/runProcess.c
b/cbits/runProcess.c
index
8358605
..
82fa97e
100644
(file)
--- a/
cbits/runProcess.c
+++ b/
cbits/runProcess.c
@@
-153,11
+153,11
@@
terminateProcess (ProcHandle handle)
int
\r
getProcessExitCode (ProcHandle handle, int *pExitCode)
\r
{
\r
int
\r
getProcessExitCode (ProcHandle handle, int *pExitCode)
\r
{
\r
- int wstat;
\r
+ int wstat, res;
\r
\r
*pExitCode = 0;
\r
\r
\r
*pExitCode = 0;
\r
\r
- if (waitpid(handle, &wstat, WNOHANG) > 0)
\r
+ if ((res = waitpid(handle, &wstat, WNOHANG)) > 0)
\r
{
\r
if (WIFEXITED(wstat))
\r
{
\r
{
\r
if (WIFEXITED(wstat))
\r
{
\r
@@
-176,7
+176,15
@@
getProcessExitCode (ProcHandle handle, int *pExitCode)
}
\r
}
\r
\r
}
\r
}
\r
\r
- return 0;
\r
+ if (res == 0) return 0;
\r
+
\r
+ if (errno == ECHILD)
\r
+ {
\r
+ *pExitCode = 0;
\r
+ return 1;
\r
+ }
\r
+
\r
+ return -1;
\r
}
\r
\r
int waitForProcess (ProcHandle handle)
\r
}
\r
\r
int waitForProcess (ProcHandle handle)
\r