diff options
Diffstat (limited to 'boost/process/detail/windows/is_running.hpp')
-rw-r--r-- | boost/process/detail/windows/is_running.hpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/boost/process/detail/windows/is_running.hpp b/boost/process/detail/windows/is_running.hpp index 920693d116..d8e5a6fb7c 100644 --- a/boost/process/detail/windows/is_running.hpp +++ b/boost/process/detail/windows/is_running.hpp @@ -18,22 +18,6 @@ constexpr static ::boost::winapi::DWORD_ still_active = 259; struct child_handle; -inline bool is_running(const child_handle &p, int & exit_code) -{ - ::boost::winapi::DWORD_ code; - //single value, not needed in the winapi. - if (!::boost::winapi::GetExitCodeProcess(p.process_handle(), &code)) - ::boost::process::detail::throw_last_error("GetExitCodeProcess() failed"); - - if (code == still_active) - return true; - else - { - exit_code = code; - return false; - } -} - inline bool is_running(const child_handle &p, int & exit_code, std::error_code &ec) noexcept { ::boost::winapi::DWORD_ code; @@ -49,7 +33,15 @@ inline bool is_running(const child_handle &p, int & exit_code, std::error_code & { exit_code = code; return false; - } + } +} + +inline bool is_running(const child_handle &p, int & exit_code) +{ + std::error_code ec; + bool b = is_running(p, exit_code, ec); + boost::process::detail::throw_error(ec, "GetExitCodeProcess() failed in is_running"); + return b; } inline bool is_running(int code) |