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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Function wait_some

boost::mpi::wait_some — Wait until some non-blocking requests have completed.


// In header: <boost/mpi/nonblocking.hpp>

template<typename BidirectionalIterator, typename OutputIterator> 
  std::pair< OutputIterator, BidirectionalIterator > 
  wait_some(BidirectionalIterator first, BidirectionalIterator last, 
            OutputIterator out);
template<typename BidirectionalIterator> 
  wait_some(BidirectionalIterator first, BidirectionalIterator last);


This routine takes in a set of requests stored in the iterator range [first,last) and waits until at least one of the requests has completed. It then completes all of the requests it can, partitioning the input sequence into pending requests followed by completed requests. If an output iterator is provided, status objects will be emitted for each of the completed requests. This routine provides functionality equivalent to MPI_Waitsome.



The iterator that denotes the beginning of the sequence of request objects.


The iterator that denotes the end of the sequence of request objects. This may not be equal to first.


If provided, the status objects corresponding to completed requests will be emitted through this output iterator.


If the out parameter was provided, a pair containing the output iterator out after all of the status objects have been written through it and an iterator referencing the first completed request. If no out parameter was provided, only the iterator referencing the first completed request will be emitted.