boostorg/mpi — pull request #14 by aminiussi (2014-09-10 11:45:21+00:00)
Title: Wait any missing some coumpound recv which intel MPI

In wait_any, we need to test for compound recv of serialized object that just got the size but not the body (that is, request[1] == null & handler != null).

Note that in:

if (current->m_requests[0] != MPI_REQUEST_NULL &&
(current->m_requests[1] != MPI_REQUEST_NULL ||
current->m_handler)) {
if (optional result = current->test())
return std::make_pair(*result, current);
}

I suspect the 3 line test should be removed and every thng handled in request::test (which is supposed to tell wheter we have a complete request).
But I have no idea why it was done like that in the first place.