summary refs log tree commit diff stats
path: root/lib/pure/osproc.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-12-17 14:22:58 +0100
committerAndreas Rumpf <rumpf_a@web.de>2016-12-17 14:22:58 +0100
commit9ac76b49c0f5f13b7f4095fc436aabbb7385be30 (patch)
treecf85db7680e3b3448195ad50eda0795831f70e56 /lib/pure/osproc.nim
parentb0134309292e41a9b29777b5bdd79f2a1278a03d (diff)
parent4fcb6c02659997914d0a78a86e9ad2642edcc07a (diff)
downloadNim-9ac76b49c0f5f13b7f4095fc436aabbb7385be30.tar.gz
Merge branch 'devel' of github.com:nim-lang/Nim into devel
Diffstat (limited to 'lib/pure/osproc.nim')
-rw-r--r--lib/pure/osproc.nim14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim
index 76bd2dfe1..1d43bb321 100644
--- a/lib/pure/osproc.nim
+++ b/lib/pure/osproc.nim
@@ -965,10 +965,16 @@ elif not defined(useNimRtl):
     var ret : int
     var status : cint = 1
     ret = waitpid(p.id, status, WNOHANG)
-    if WIFEXITED(status):
-      p.exitStatus = status
-    if ret == 0: return true # Can't establish status. Assume running.
-    result = ret == int(p.id)
+    if ret == int(p.id):
+      if WIFEXITED(status):
+        p.exitStatus = status
+        return false
+      else:
+        return true
+    elif ret == 0:
+      return true # Can't establish status. Assume running.
+    else:
+      return false
 
   proc terminate(p: Process) =
     if kill(p.id, SIGTERM) != 0'i32: