From de5090029c6b83fe60d3c801d3d6b51f033bcb0e Mon Sep 17 00:00:00 2001 From: Pooja Trivedi Date: Thu, 4 Dec 2025 17:16:47 -0500 Subject: [PATCH] Add a utility Wait() method with timeout to WSLAProcessLauncher --- src/windows/common/WSLAProcessLauncher.cpp | 6 ++++++ src/windows/common/WSLAProcessLauncher.h | 1 + 2 files changed, 7 insertions(+) diff --git a/src/windows/common/WSLAProcessLauncher.cpp b/src/windows/common/WSLAProcessLauncher.cpp index ca3c614..5409b72 100644 --- a/src/windows/common/WSLAProcessLauncher.cpp +++ b/src/windows/common/WSLAProcessLauncher.cpp @@ -118,6 +118,12 @@ std::string WSLAProcessLauncher::FormatResult(const RunningWSLAProcess::ProcessR stdErr != result.Output.end() ? stdErr->second : ""); } +std::pair RunningWSLAProcess::Wait(DWORD TimeoutMs) +{ + THROW_HR_IF(HRESULT_FROM_WIN32(ERROR_TIMEOUT), !GetExitEvent().wait(TimeoutMs)); + return GetExitState(); +} + RunningWSLAProcess::ProcessResult RunningWSLAProcess::WaitAndCaptureOutput(DWORD TimeoutMs, std::vector>&& ExtraHandles) { RunningWSLAProcess::ProcessResult result; diff --git a/src/windows/common/WSLAProcessLauncher.h b/src/windows/common/WSLAProcessLauncher.h index 5d919f8..aa573cf 100644 --- a/src/windows/common/WSLAProcessLauncher.h +++ b/src/windows/common/WSLAProcessLauncher.h @@ -47,6 +47,7 @@ public: DEFAULT_MOVABLE(RunningWSLAProcess); ProcessResult WaitAndCaptureOutput(DWORD TimeoutMs = INFINITE, std::vector>&& ExtraHandles = {}); + std::pair Wait(DWORD TimeoutMs = INFINITE); virtual wil::unique_handle GetStdHandle(int Index) = 0; virtual wil::unique_event GetExitEvent() = 0; std::pair GetExitState();