id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 9356,Unexpected wait_any function behavor (with irecv),christopher.bignamini@…,Matthias Troyer,"The boost wait_any function does not behave as the corresponding MPI function, in correspondence to irecv function calls, when more than 1 data transmission request is present. In particular it is possible that after a first successfully completed communication all the others are not checked at all, with the function always returning as in case of a new completed communication. This unexpected behavior is probably due to the following code lines (in file nonblocking.hpp, from line 61): {{{ // Check if we have found a completed request. If so, return it. if (optional result = current->test()) return std::make_pair(*result, current); }}} If a previously completed request is tested the corresponding optional result is returned and, with the above conditional statement, this condition leads to a subsequent return to the external calling code. The performed request status check should therefore probably also include the required information to exclude previously completed communications. By commenting the above lines and using the wait_any function with standard MPI data types the unexpected behavior disappears since in this case the boost function is allowed to make use of the corresponding MPI function.",Bugs,closed,To Be Determined,mpi,Boost 1.54.0,Problem,fixed,"wait_any, mpi, non blocking",