1
1

added renamed ompi_request_test to ompi_request_test_any and

added new ompi_request_test w/ the correct semantics for a single test

This commit was SVN r3355.
Этот коммит содержится в:
Tim Woodall 2004-10-26 21:45:25 +00:00
родитель 7534fccec8
Коммит 8d48c2113f
2 изменённых файлов: 42 добавлений и 4 удалений

Просмотреть файл

@ -8,7 +8,7 @@
#include "request/request.h"
int ompi_request_test(
int ompi_request_test_any(
size_t count,
ompi_request_t ** requests,
int *index,

Просмотреть файл

@ -175,6 +175,45 @@ static inline int ompi_request_free(ompi_request_t** request)
return (*request)->req_free(request);
}
/**
* Non-blocking test for request completion.
*
* @param request (IN) Array of requests
* @param complete (OUT) Flag indicating if index is valid (a request completed).
* @param status (OUT) Status of completed request.
* @return OMPI_SUCCESS or failure status.
*
* Note that upon completion, the request is freed, and the
* request handle at index set to NULL.
*/
static inline int ompi_request_test(
ompi_request_t ** rptr,
int *completed,
ompi_status_public_t * status)
{
ompi_request_t *request = *rptr;
ompi_atomic_mb();
if (request == MPI_REQUEST_NULL) {
*completed = true;
if (MPI_STATUS_IGNORE != status) {
*status = ompi_request_null.req_status;
}
return OMPI_SUCCESS;
}
else if (request->req_complete) {
*completed = true;
if (MPI_STATUS_IGNORE != status) {
*status = request->req_status;
}
return request->req_fini(rptr);
} else {
*completed = false;
return OMPI_SUCCESS;
}
}
/**
* Non-blocking test for request completion.
*
@ -189,14 +228,13 @@ static inline int ompi_request_free(ompi_request_t** request)
* request handle at index set to NULL.
*/
OMPI_DECLSPEC int ompi_request_test(
int ompi_request_test_any(
size_t count,
ompi_request_t ** requests,
int *index,
int *completed,
ompi_status_public_t * status);
/**
* Non-blocking test for request completion.
*