Kolsha / wait_all

waits for all handlers to complete

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

wait_all

This is C++20 library for boost::asio which waits for all coroutines/awaitables/handlers to complete.

Motivating Example #0

#include "wait_all/wait_all.hpp"

Response handleRequest(const Context& ctx, boost::asio::yield_context yield) {

    struct Responses {
        ServiceResponse1 s1;
        ServiceResponse2 s2;
        // ..
        ServiceResponseN sN;
    };

    const auto responses = wait_all::waitAll<Responses>(
        ctx.io, yield,
        makreRequestService1,
        makreRequestService2,
        // ...
        makreRequestServiceN,
    );

    // compose and return Response based on responses from N services
}

About

waits for all handlers to complete


Languages

Language:C++ 94.4%Language:CMake 5.6%