| 425 | } |
| 426 | |
| 427 | ProcessRunner::Results waitForProcess(HANDLE initialProcess, LPDWORD exitCode, |
| 428 | UILocker::Session* ls) |
| 429 | { |
| 430 | std::vector<HANDLE> processes = {initialProcess}; |
| 431 | |
| 432 | const auto r = waitForProcesses(processes, ls); |
| 433 | |
| 434 | // as long as it's not running anymore, try to get the exit code |
| 435 | if (exitCode && r != ProcessRunner::Running) { |
| 436 | if (!::GetExitCodeProcess(initialProcess, exitCode)) { |
| 437 | const auto e = ::GetLastError(); |
| 438 | log::warn("failed to get exit code of process, {}", formatSystemMessage(e)); |
| 439 | } |
| 440 | } |
| 441 | |
| 442 | return r; |
| 443 | } |
| 444 | |
| 445 | ProcessRunner::ProcessRunner(OrganizerCore& core, IUserInterface* ui) |
| 446 | : m_core(core), m_ui(ui), m_lockReason(UILocker::NoReason), m_waitFlags(NoFlags), |
no test coverage detected