From f9c404510584faab71b9e9d911d9b396b0f420b0 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 12 Feb 2024 15:47:31 +0800 Subject: WORKING: add non-block flag for unix pipe. --- src/common/platform/unix/PosixSpawnSubProcess.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/common/platform/unix/PosixSpawnSubProcess.cpp') diff --git a/src/common/platform/unix/PosixSpawnSubProcess.cpp b/src/common/platform/unix/PosixSpawnSubProcess.cpp index 6a8a8d0f..a356de77 100644 --- a/src/common/platform/unix/PosixSpawnSubProcess.cpp +++ b/src/common/platform/unix/PosixSpawnSubProcess.cpp @@ -2,11 +2,24 @@ #include "cru/common/SubProcess.h" #include +#include namespace cru::platform::unix { PosixSpawnSubProcess::PosixSpawnSubProcess( const PlatformSubProcessStartInfo& start_info) - : PlatformSubProcessBase(start_info), pid_(0), exit_code_(0) {} + : PlatformSubProcessBase(start_info), + pid_(0), + exit_code_(0), + stdin_pipe_(UnixPipe::Usage::Send), + stdout_pipe_(UnixPipe::Usage::Receive), + stderr_pipe_(UnixPipe::Usage::Receive) { + stdin_stream_ = std::make_unique( + stdin_pipe_.GetSelfFileDescriptor(), false, false, true, false); + stdout_stream_ = std::make_unique( + stdout_pipe_.GetSelfFileDescriptor(), false, true, false, false); + stderr_stream_ = std::make_unique( + stderr_pipe_.GetSelfFileDescriptor(), false, true, false, false); +} PosixSpawnSubProcess::~PosixSpawnSubProcess() {} -- cgit v1.2.3