From ce12e1d64d6b0b62609f061d3773a7e8b35849c3 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 30 Nov 2021 16:50:05 -0500 Subject: Auto flush for streams for stdin/out in slang-test (#2035) * #include an absolute path didn't work - because paths were taken to always be relative. * Move StreamType from Process to StdStreamType in slang-stream.h * Disable buffering for stdout/stderr for slang-test. * Improve comment. --- source/core/windows/slang-win-process.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'source/core/windows') diff --git a/source/core/windows/slang-win-process.cpp b/source/core/windows/slang-win-process.cpp index ed06f5692..e0e38f2d4 100644 --- a/source/core/windows/slang-win-process.cpp +++ b/source/core/windows/slang-win-process.cpp @@ -120,7 +120,7 @@ public: WinProcess(HANDLE handle, Stream* const* streams) : m_processHandle(handle) { - for (Index i = 0; i < Index(Process::StreamType::CountOf); ++i) + for (Index i = 0; i < Index(StdStreamType::CountOf); ++i) { m_streams[i] = streams[i]; } @@ -373,21 +373,21 @@ void WinProcess::kill(int32_t returnCode) return UnownedStringSlice::fromLiteral(".exe"); } -/* static */SlangResult Process::getStdStream(StreamType type, RefPtr& out) +/* static */SlangResult Process::getStdStream(StdStreamType type, RefPtr& out) { switch (type) { - case StreamType::StdIn: + case StdStreamType::In: { out = new WinPipeStream(GetStdHandle(STD_INPUT_HANDLE), FileAccess::Read, false); return SLANG_OK; } - case StreamType::StdOut: + case StdStreamType::Out: { out = new WinPipeStream(GetStdHandle(STD_OUTPUT_HANDLE), FileAccess::Write, false); return SLANG_OK; } - case StreamType::ErrorOut: + case StdStreamType::ErrorOut: { out = new WinPipeStream(GetStdHandle(STD_ERROR_HANDLE), FileAccess::Write, false); return SLANG_OK; @@ -518,10 +518,10 @@ void WinProcess::kill(int32_t returnCode) processHandle = processInfo.hProcess; } - RefPtr streams[Index(Process::StreamType::CountOf)]; - streams[Index(Process::StreamType::ErrorOut)] = new WinPipeStream(childStdErrRead.detach(), FileAccess::Read); - streams[Index(Process::StreamType::StdOut)] = new WinPipeStream(childStdOutRead.detach(), FileAccess::Read); - streams[Index(Process::StreamType::StdIn)] = new WinPipeStream(childStdInWrite.detach(), FileAccess::Write); + RefPtr streams[Index(StdStreamType::CountOf)]; + streams[Index(StdStreamType::ErrorOut)] = new WinPipeStream(childStdErrRead.detach(), FileAccess::Read); + streams[Index(StdStreamType::Out)] = new WinPipeStream(childStdOutRead.detach(), FileAccess::Read); + streams[Index(StdStreamType::In)] = new WinPipeStream(childStdInWrite.detach(), FileAccess::Write); outProcess = new WinProcess(processHandle.detach(), streams[0].readRef()); return SLANG_OK; -- cgit v1.2.3