asio C++ library

PrevUpHomeNext

experimental::make_parallel_group

Create a group of operations that may be launched in parallel.

template<
    typename... Ops>
parallel_group< Ops...> make_parallel_group(
    Ops... ops);

For example:

asio::experimental::make_parallel_group(
   [&](auto token)
   {
     return in.async_read_some(asio::buffer(data), token);
   },
   [&](auto token)
   {
     return timer.async_wait(token);
   }
 ).async_wait(
   asio::experimental::wait_for_all(),
   [](
       std::array<std::size_t, 2> completion_order,
       std::error_code ec1, std::size_t n1,
       std::error_code ec2
   )
   {
     switch (completion_order[0])
     {
     case 0:
       {
         std::cout << "descriptor finished: " << ec1 << ", " << n1 << "\n";
       }
       break;
     case 1:
       {
         std::cout << "timer finished: " << ec2 << "\n";
       }
       break;
     }
   }
 );
Requirements

Header: asio/experimental/parallel_group.hpp

Convenience header: None


PrevUpHomeNext