better error handling for osproc.nim

This commit is contained in:
Andreas Rumpf
2016-11-05 09:04:16 +01:00
parent 33ebf3e5fb
commit 0a6787f956

View File

@@ -841,15 +841,19 @@ elif not defined(useNimRtl):
if data.workingDir.len > 0:
setCurrentDir($data.workingDir)
var pid: Pid
var err: OSErrorCode
if data.optionPoUsePath:
res = posix_spawnp(pid, data.sysCommand, fops, attr, data.sysArgs, data.sysEnv)
if res != 0'i32: err = osLastError()
else:
res = posix_spawn(pid, data.sysCommand, fops, attr, data.sysArgs, data.sysEnv)
if res != 0'i32: err = osLastError()
discard posix_spawn_file_actions_destroy(fops)
discard posix_spawnattr_destroy(attr)
chck res
if res != 0'i32: raiseOSError(err)
return pid
else:
proc startProcessAuxFork(data: StartProcessData): Pid =