summaryrefslogtreecommitdiff
path: root/boost/process/detail/windows/is_running.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/process/detail/windows/is_running.hpp')
-rw-r--r--boost/process/detail/windows/is_running.hpp26
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)