HRESULT Status;
IfFailRet(m_sharedDebugger->StepCommand(threadId, stepType));
output = "^running";
+ {
+ lock_guard lock(m_mutex);
+ m_processStatus = Running;
+ m_state_cv.notify_all();
+ }
return Status;
}
if (!val)
{
// nothing to read from the console -- defer call to ReadFile
- result.buf = nullptr, result.count = 0;
+ result.buf = buf, result.count = count;
return result;
}
}
}
assert(n == count);
- DWORD result = WaitForMultipleObjects(count, events, FALSE, DWORD(timeout.count()));
- return result != WAIT_FAILED && result != WAIT_TIMEOUT;
+ DWORD result;
+ do result = WaitForMultipleObjects(count, events, FALSE, DWORD(timeout.count()));
+ while (result == WAIT_TIMEOUT);
+ return result != WAIT_FAILED;
}
Class::IOResult Class::async_cancel(AsyncHandle& h)