Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Struct async_handler



// In header: <boost/process/extend.hpp>

struct async_handler : public boost::process::extend::handler,
                       public boost::process::extend::require_io_context


Inheriting this class will tell the launching function, that an event handler shall be invoked when the process exits. This automatically does also inherit require_io_context.

You must add the following function to your implementation:

template<typename Executor>
std::function<void(int, const std::error_code&)> on_exit_handler(Executor & exec)
    auto handler_ = this->handler;
    return [handler_](int exit_code, const std::error_code & ec)
                handler_(static_cast<int>(exit_code), ec);


The callback will be obtained by calling this function on setup and it will be invoked when the process exits.

[Warning] Warning

Cannot be used with boost::process::spawn