|
@@ -664,13 +664,15 @@ static void _starpu_mpi_wait_func(struct _starpu_mpi_req *waiting_req)
|
|
|
struct _starpu_mpi_req *req = waiting_req->other_request;
|
|
|
|
|
|
_STARPU_MPI_TRACE_UWAIT_BEGIN(req->node_tag.rank, req->node_tag.data_tag);
|
|
|
-
|
|
|
- req->ret = MPI_Wait(&req->data_request, waiting_req->status);
|
|
|
- STARPU_MPI_ASSERT_MSG(req->ret == MPI_SUCCESS, "MPI_Wait returning %s", _starpu_mpi_get_mpi_error_code(req->ret));
|
|
|
-
|
|
|
+ if (req->data_request != MPI_REQUEST_NULL)
|
|
|
+ {
|
|
|
+ req->ret = MPI_Wait(&req->data_request, waiting_req->status);
|
|
|
+ STARPU_MPI_ASSERT_MSG(req->ret == MPI_SUCCESS, "MPI_Wait returning %s", _starpu_mpi_get_mpi_error_code(req->ret));
|
|
|
+ }
|
|
|
_STARPU_MPI_TRACE_UWAIT_END(req->node_tag.rank, req->node_tag.data_tag);
|
|
|
|
|
|
_starpu_mpi_handle_request_termination(req);
|
|
|
+
|
|
|
_STARPU_MPI_LOG_OUT();
|
|
|
}
|
|
|
|