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;
{
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)