25#if USE_NOISY_TRACE_IN_THIS_MODULE_
28#if qStroika_Foundation_Common_Platform_POSIX
32 pid_t tmp{::getpgid (pid)};
33#if USE_NOISY_TRACE_IN_THIS_MODULE_
34 DbgTrace (
"getpgid (pid={}) -> {}, with ernno={}"_f, pid, tmp, errno);
37#elif qStroika_Foundation_Common_Platform_Windows
38 HANDLE process = ::OpenProcess (SYNCHRONIZE, FALSE, pid);
39 if (process ==
nullptr) {
44 [[maybe_unused]]
auto&& cleanup =
Execution::Finally ([&] ()
noexcept { ::CloseHandle (process); });
45 constexpr bool kUseGetExitCodeProcess_{
false};
46 if constexpr (kUseGetExitCodeProcess_) {
48 return ::GetExitCodeProcess (process, &exitCode) and exitCode == STILL_ACTIVE;
51 return ::WaitForSingleObject (process, 0) == WAIT_TIMEOUT;