HPX - High Performance ParalleX

PrevUpHomeNext

Function template wait_some

hpx::wait_some

Synopsis

// In header: <hpx/lcos/wait_some.hpp>


template<typename InputIter> 
  future< vector< future< typename std::iterator_traits< InputIter >::value_type > > > 
  wait_some(std::size_t n, Iterator first, Iterator last, 
            error_code & ec = throws);

Description

The function wait_some is an operator allowing to join on the result of all given futures. It AND-composes all future objects given and returns a new future object representing the same list of futures after n of them finished executing.

[Note] Note

The future returned by the function wait_some becomes ready when at least n argument futures have become ready.

[Note] Note

Calling this version of wait_some where first == last, returns a future with an empty vector that is immediately ready. Each future and shared_future is waited upon and then copied into the collection of the output (returned) future, maintaining the order of the futures in the input collection. The future returned by wait_some will not throw an exception, but the futures held in the output collection may.

Parameters:

ec

[in,out] this represents the error status on exit, if this is pre-initialized to hpx::throws the function will throw on error instead.

first

[in] The iterator pointing to the first element of a sequence of future or shared_future objects for which when_all should wait.

last

[in] The iterator pointing to the last element of a sequence of future or shared_future objects for which when_all should wait.

n

[in] The number of futures out of the arguments which have to become ready in order for the returned future to get ready.

Returns:

Returns a future holding the same list of futures as has been passed to wait_some.

  • future<vector<future<R>>>: If the input cardinality is unknown at compile time and the futures are all of the same type.


PrevUpHomeNext