NPRPC docs

function spawn_task

C++

template <typename Factory> void spawn_task(boost::asio::io_context &ioc, Factory factory)

Runs factory(), which returns boost::asio::awaitable<void>, on ioc without waiting for it:

nprpc::spawn_task(nprpc::get_io_context(),
    [obj]() -> boost::asio::awaitable<void> {
        co_await nprpc::as_awaitable(obj->SetValueAsync(42));
    });

The factory, and so the lambda's captures, stay alive until the coroutine finishes.

include/nprpc/asio_compat.hpp:125