From 92ecbc9958feb60b549a7d92116658e5ba2f041a Mon Sep 17 00:00:00 2001 From: Araq Date: Sat, 7 Jan 2017 03:05:48 +0100 Subject: [PATCH] fixes #5179 --- lib/pure/osproc.nim | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim index 1d43bb3215..fbcea40428 100644 --- a/lib/pure/osproc.nim +++ b/lib/pure/osproc.nim @@ -429,13 +429,14 @@ when defined(Windows) and not defined(useNimRtl): raiseOSError(osLastError()) proc createAllPipeHandles(si: var STARTUPINFO; - stdin, stdout, stderr: var Handle) = + stdin, stdout, stderr: var Handle; + hash: int) = var sa: SECURITY_ATTRIBUTES sa.nLength = sizeof(SECURITY_ATTRIBUTES).cint sa.lpSecurityDescriptor = nil sa.bInheritHandle = 1 - let pipeOutName = newWideCString(r"\\.\pipe\stdout") - let pipeInName = newWideCString(r"\\.\pipe\stdin") + let pipeOutName = newWideCString(r"\\.\pipe\stdout" & $hash) + let pipeInName = newWideCString(r"\\.\pipe\stdin" & $hash) let pipeOut = createNamedPipe(pipeOutName, dwOpenMode=PIPE_ACCESS_INBOUND or FILE_FLAG_WRITE_THROUGH, dwPipeMode=PIPE_NOWAIT, @@ -512,7 +513,7 @@ when defined(Windows) and not defined(useNimRtl): else: createPipeHandles(he, si.hStdError) else: - createAllPipeHandles(si, hi, ho, he) + createAllPipeHandles(si, hi, ho, he, cast[int](result)) result.inHandle = FileHandle(hi) result.outHandle = FileHandle(ho) result.errHandle = FileHandle(he)