summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authormodk <github@modk.org>2015-01-29 12:51:22 +0100
committermodk <github@modk.org>2015-01-29 12:51:22 +0100
commit458e3b2f07eea9a1f6d369cb10e7504f4e4d3855 (patch)
treef02bf11f68794fe8099fce2ec25306938b48bb88 /lib/pure
parente37e9978689c0ae394a8fa1cd748d969f079f1a4 (diff)
downloadNim-458e3b2f07eea9a1f6d369cb10e7504f4e4d3855.tar.gz
FreeBSD-specific code
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/osproc.nim12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim
index 7261dcf56..6361dfb09 100644
--- a/lib/pure/osproc.nim
+++ b/lib/pure/osproc.nim
@@ -848,10 +848,14 @@ elif not defined(useNimRtl):
     if kill(p.id, SIGCONT) != 0'i32: raiseOsError(osLastError())
 
   proc running(p: Process): bool =
-    var status : cint = 1
-    var ret = waitpid(p.id, status, WNOHANG)
-    if WIFEXITED(status):
-      p.exitCode = status
+    var ret : int
+    when not defined(freebsd):
+      ret = waitpid(p.id, p.exitCode, WNOHANG)
+    else:
+      var status : cint = 1
+      ret = waitpid(p.id, status, WNOHANG)
+      if WIFEXITED(status):
+        p.exitCode = status
     if ret == 0: return true # Can't establish status. Assume running.
     result = ret == int(p.id)