HPX - High Performance ParalleX


Function template wait_some_n



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

template<typename InputIter> 
  InputIter wait_some_n(std::size_t n, Iterator first, std::size_t count, 
                        error_code & ec = throws);


The function wait_some_n 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 function wait_all returns after n futures have become ready. All input futures are still valid after wait_all returns.

[Note] Note

Calling this version of wait_some_n where count == 0, returns a future with the same elements as the arguments that is immediately ready. Possibly none of the futures in that vector are 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_n will not throw an exception, but the futures held in the output collection may.



[in] The number of elements in the sequence starting at first.


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


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


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


This function returns an Iterator referring to the first element after the last processed input element.