Function test_all
boost::mpi::test_all — Tests whether all non-blocking requests have completed.
Synopsis
template<typename ForwardIterator, typename OutputIterator>
optional< OutputIterator >
test_all(ForwardIterator first, ForwardIterator last, OutputIterator out);
template<typename ForwardIterator>
bool test_all(ForwardIterator first, ForwardIterator last);
Description
Эта процедура принимает набор запросов, хранящихся в диапазоне итераторов
[первый, последний], и определяет, были ли все эти запросы завершены. Однако из-за ограничений базовой реализации MPI, если какой-либо из запросов относится к неблокирующему отправке или получению серийного типа данных, test_all
всегда вернет эквивалент false
(т.е. все запросы не могут быть завершены в это время). Эта процедура выполняет ту же функциональность, что и wait_all
, за исключением того, что эта рутина не будет блокироваться. Эта процедура обеспечивает функциональность, эквивалентную MPI_Testall
.
Параметры: |
первый |
Итератор, обозначающий начало последовательности объектов запроса. |
last
|
Итератор, обозначающий конец последовательности объектов запроса. |
out
|
В случае предоставления и выполнения всех запросов будет завершен выпускной итератор, через который будет выдан статус каждого запроса. Объекты status излучаются в том же порядке, что и запросы из [1,last] |
|
Возвращение: |
Если был предоставлен параметр out , значение out после того, как все объекты status были выброшены (если все запросы были завершены) или пустой опционально<> . Если не был предоставлен параметр out , возвращается Правда если все запросы завершены или false в противном случае. |