diff --git a/ompi/request/req_wait.c b/ompi/request/req_wait.c index 15dacf9e6ff..14a8dcbf134 100644 --- a/ompi/request/req_wait.c +++ b/ompi/request/req_wait.c @@ -243,7 +243,7 @@ int ompi_request_default_wait_all( size_t count, continue; } - if (!OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&request->req_complete, &_tmp_ptr, &sync)) { + if (REQUEST_COMPLETE(request) || !OPAL_ATOMIC_COMPARE_EXCHANGE_STRONG_PTR(&request->req_complete, &_tmp_ptr, &sync)) { if( OPAL_LIKELY( REQUEST_COMPLETE(request) ) ) { if( OPAL_UNLIKELY( MPI_SUCCESS != request->req_status.MPI_ERROR ) ) { failed++;