diff options
-rw-r--r-- | include/cru/common/SubProcess.h | 8 | ||||
-rw-r--r-- | include/cru/common/io/AutoReadStream.h | 1 | ||||
-rw-r--r-- | src/common/platform/unix/PosixSpawnSubProcess.cpp | 2 |
3 files changed, 5 insertions, 6 deletions
diff --git a/include/cru/common/SubProcess.h b/include/cru/common/SubProcess.h index 1f7193b5..86dd3ebe 100644 --- a/include/cru/common/SubProcess.h +++ b/include/cru/common/SubProcess.h @@ -188,9 +188,9 @@ class PlatformSubProcessBase : public Object { bool delete_self_; std::thread process_thread_; - std::mutex process_mutex_; - std::unique_lock<std::mutex> process_lock_; - std::condition_variable process_condition_variable_; + std::recursive_mutex process_mutex_; + std::unique_lock<std::recursive_mutex> process_lock_; + std::condition_variable_any process_condition_variable_; }; class CRU_BASE_API SubProcess : public Object { @@ -212,7 +212,7 @@ class CRU_BASE_API SubProcess : public Object { ~SubProcess(); public: - void Wait(std::optional<std::chrono::milliseconds> wait_time); + void Wait(std::optional<std::chrono::milliseconds> wait_time = std::nullopt); void Kill(); SubProcessStatus GetStatus(); diff --git a/include/cru/common/io/AutoReadStream.h b/include/cru/common/io/AutoReadStream.h index 2887b319..b416d050 100644 --- a/include/cru/common/io/AutoReadStream.h +++ b/include/cru/common/io/AutoReadStream.h @@ -5,7 +5,6 @@ #include "Stream.h" #include <mutex> -#include <thread> namespace cru::io { struct AutoReadStreamOptions { diff --git a/src/common/platform/unix/PosixSpawnSubProcess.cpp b/src/common/platform/unix/PosixSpawnSubProcess.cpp index 1d69f54a..4065d6f6 100644 --- a/src/common/platform/unix/PosixSpawnSubProcess.cpp +++ b/src/common/platform/unix/PosixSpawnSubProcess.cpp @@ -31,7 +31,7 @@ PosixSpawnSubProcess::PosixSpawnSubProcess(SubProcessStartInfo start_info) stdout_buffer_stream_ = std::make_unique<io::AutoReadStream>(stdout_stream_.get(), false); stderr_buffer_stream_ = - std::make_unique<io::AutoReadStream>(stdout_stream_.get(), false); + std::make_unique<io::AutoReadStream>(stderr_stream_.get(), false); } PosixSpawnSubProcess::~PosixSpawnSubProcess() {} |