1
1

mpi: check MPI_Start[all] is invoked on persistent requests

and errors otherwise.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
Gilles Gouaillardet 2017-12-13 16:32:21 +09:00 коммит произвёл KAWASHIMA Takahiro
родитель 545e9af896
Коммит 9a63dacf1c
2 изменённых файлов: 7 добавлений и 3 удалений

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

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
* $COPYRIGHT$
@ -68,6 +68,9 @@ int MPI_Start(MPI_Request *request)
switch((*request)->req_type) {
case OMPI_REQUEST_PML:
case OMPI_REQUEST_COLL:
if ( MPI_PARAM_CHECK && !(*request)->req_persistent) {
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_REQUEST, FUNC_NAME);
}
OPAL_CR_ENTER_LIBRARY();
ret = (*request)->req_start(1, request);

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

@ -13,9 +13,9 @@
* Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2012-2016 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2014-2015 Research Organization for Information Science
* Copyright (c) 2014-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2017 FUJITSU LIMITED. All rights reserved.
* Copyright (c) 2017-2018 FUJITSU LIMITED. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -65,6 +65,7 @@ int MPI_Startall(int count, MPI_Request requests[])
} else {
for (i = 0; i < count; ++i) {
if (NULL == requests[i] ||
! requests[i]->req_persistent ||
(OMPI_REQUEST_PML != requests[i]->req_type &&
OMPI_REQUEST_COLL != requests[i]->req_type &&
OMPI_REQUEST_NOOP != requests[i]->req_type)) {