1
1

- As shown in ticket #1349, the status is not copied

correctly in case of MPI_PROC_NULL with persistent requests.

   As of r12339, the req_status of the request is initialized
   correclty and being used in {{{ompi_request_test}}} and
   {{{ompi_request_wait}}}.
   So, just set the status, getting rid of the if-statement.
   Checked by Jeff using mtt.

This commit was SVN r19485.

The following SVN revision numbers were found above:
  r12339 --> open-mpi/ompi@020efdf1f9
Этот коммит содержится в:
Rainer Keller 2008-09-02 15:36:10 +00:00
родитель c2c5a34cb1
Коммит 33c6dae93a
2 изменённых файлов: 12 добавлений и 8 удалений

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

@ -5,7 +5,7 @@
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
@ -210,8 +210,14 @@ int ompi_request_default_test_all(
/* fill out completion status and free request if required */
for( i = 0; i < count; i++, rptr++ ) {
request = *rptr;
/*
* If the request is OMPI_REQUEST_INACTIVE set the status
* (either in the case of standard and persistent requests),
* to the already initialized req_status.
* Works also in the case of persistent request w/ MPI_PROC_NULL.
*/
if( request->req_state == OMPI_REQUEST_INACTIVE ) {
statuses[i] = ompi_status_empty;
statuses[i] = request->req_status;
continue;
}
if (OMPI_REQUEST_GEN == request->req_type) {

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

@ -5,7 +5,7 @@
* Copyright (c) 2004-2006 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
@ -297,11 +297,9 @@ int ompi_request_default_wait_all( size_t count,
if (OMPI_REQUEST_GEN == request->req_type) {
ompi_grequest_invoke_query(request, &request->req_status);
}
if( request->req_state == OMPI_REQUEST_INACTIVE ) {
statuses[i] = ompi_status_empty;
} else {
statuses[i] = request->req_status;
}
statuses[i] = request->req_status;
if( request->req_persistent ) {
request->req_state = OMPI_REQUEST_INACTIVE;
} else {