From b453a8e616f489e077f8edcd95623b07484e7b8b Mon Sep 17 00:00:00 2001 From: Johannes Hofmann Date: Fri, 2 Dec 2016 22:24:42 +0100 Subject: [PATCH] check waitpid() return value before setting exitStatus This fixes a race with parallelBuild on DragonFly BSD. --- lib/pure/osproc.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim index 76bd2dfe1d..f597bf7730 100644 --- a/lib/pure/osproc.nim +++ b/lib/pure/osproc.nim @@ -965,7 +965,7 @@ elif not defined(useNimRtl): var ret : int var status : cint = 1 ret = waitpid(p.id, status, WNOHANG) - if WIFEXITED(status): + if ret == int(p.id) and WIFEXITED(status): p.exitStatus = status if ret == 0: return true # Can't establish status. Assume running. result = ret == int(p.id)