Return the status of an MPI request. * Wraps MPI_Request_get_status. */
| 41 | * Wraps MPI_Request_get_status. |
| 42 | */ |
| 43 | static bool request_get_status(const MPI_Request& req, |
| 44 | MPI_Status& status) |
| 45 | { |
| 46 | int flag; |
| 47 | MPI_Request_get_status(req, &flag, &status); |
| 48 | // Work around a bug present in Open MPI 1.3.3 and earlier. |
| 49 | // MPI_Request_get_status may return false on the first call even |
| 50 | // though a message is waiting. The second call should work. |
| 51 | if (!flag) |
| 52 | MPI_Request_get_status(req, &flag, &status); |
| 53 | return flag; |
| 54 | } |
| 55 | |
| 56 | /** Return the tag of the received message or APM_NONE if no message |
| 57 | * has been received. If a message has been received, this call should |
no outgoing calls
no test coverage detected