Boost C++ Libraries

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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
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:

boost::asio::experimental::make_parallel_group(
   [&](auto token)
   {
     return in.async_read_some(boost::asio::buffer(data), token);
   },
   [&](auto token)
   {
     return timer.async_wait(token);
   }
 ).async_wait(
   boost::asio::experimental::wait_for_all(),
   [](
       std::array<std::size_t, 2> completion_order,
       boost::system::error_code ec1, std::size_t n1,
       boost::system::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: boost/asio/experimental/parallel_group.hpp

Convenience header: None


PrevUpHomeNext