Add a utility Wait() method with timeout to WSLAProcessLauncher

This commit is contained in:
Pooja Trivedi 2025-12-04 17:16:47 -05:00
parent 844acd07d5
commit f82104bdb5
2 changed files with 7 additions and 0 deletions

View File

@ -109,6 +109,12 @@ std::string WSLAProcessLauncher::FormatResult(const RunningWSLAProcess::ProcessR
stdErr != result.Output.end() ? stdErr->second : "<none>");
}
std::pair<int, bool> 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<std::unique_ptr<relay::OverlappedIOHandle>>&& ExtraHandles)
{
RunningWSLAProcess::ProcessResult result;

View File

@ -47,6 +47,7 @@ public:
DEFAULT_MOVABLE(RunningWSLAProcess);
ProcessResult WaitAndCaptureOutput(DWORD TimeoutMs = INFINITE, std::vector<std::unique_ptr<relay::OverlappedIOHandle>>&& ExtraHandles = {});
std::pair<int, bool> Wait(DWORD TimeoutMs = INFINITE);
virtual wil::unique_handle GetStdHandle(int Index) = 0;
virtual wil::unique_event GetExitEvent() = 0;
std::pair<int, bool> GetExitState();