summaryrefslogtreecommitdiff
path: root/boost/process/detail/posix/io_context_ref.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/process/detail/posix/io_context_ref.hpp')
-rw-r--r--boost/process/detail/posix/io_context_ref.hpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/boost/process/detail/posix/io_context_ref.hpp b/boost/process/detail/posix/io_context_ref.hpp
index 603fd59a16..6eefee2247 100644
--- a/boost/process/detail/posix/io_context_ref.hpp
+++ b/boost/process/detail/posix/io_context_ref.hpp
@@ -18,6 +18,7 @@
#include <boost/process/detail/posix/sigchld_service.hpp>
+#include <boost/process/detail/posix/is_running.hpp>
#include <functional>
#include <type_traits>
@@ -95,11 +96,11 @@ struct io_context_ref : handler_base_ext
auto & es = exec.exit_status;
auto wh = [funcs, es](int val, const std::error_code & ec)
- {
- es->store(val);
+ {
+ es->store(val);
for (auto & func : funcs)
- func(WEXITSTATUS(val), ec);
- };
+ func(::boost::process::detail::posix::eval_exit_status(val), ec);
+ };
sigchld_service.async_wait(exec.pid, std::move(wh));
}