Sometimes, in external-process-wait, the value of code was undetermined.
authorJuan Jose Garcia Ripoll <jjgarcia@jjgr-2.local>
Mon, 25 Jan 2010 20:25:56 +0000 (21:25 +0100)
committerJuan Jose Garcia Ripoll <jjgarcia@jjgr-2.local>
Mon, 25 Jan 2010 20:25:56 +0000 (21:25 +0100)
src/c/unixsys.d

index 76219d6..b0c3e09 100644 (file)
@@ -178,8 +178,10 @@ make_windows_handle(HANDLE h)
                 ok = GetExitCodeProcess(*hProcess, &exitcode);
                 if (!ok) {
                         status = @':error';
+                        code = Cnil;
                 } else if (exitcode == STILL_ACTIVE) {
                         status = @':runnning';
+                        code = Cnil;
                 } else {
                         status = @':exited';
                         code = MAKE_FIXNUM(exitcode);
@@ -193,6 +195,7 @@ make_windows_handle(HANDLE h)
                 int error = waitpid(pid, &code_int, Null(wait)? WNOHANG : 0);
                 if (error < 0) {
                         status = @':error';
+                        code = Cnil;
                 } else if (WIFEXITED(code_int)) {
                         status = @':exited';
                         code = MAKE_FIXNUM(WEXITSTATUS(code_int));