Fix some problems with errhandlers:
* Fix MPI-2 page number in comments for a specific reference in the spec * Allow getting/setting the errhandler on MPI_FILE_NULL * Allow freeing of intrinsic errhandlers, per MPI-2 errata (if you GET an errhandler on a communicator, you must be able to FREE it, even if it's an intrinsic). Thanks to Lisandro Dalcin for reporting these problems. This commit was SVN r12122.
Этот коммит содержится в:
родитель
e7a7a64e4c
Коммит
407b3cb788
8
NEWS
8
NEWS
@ -64,6 +64,14 @@ version 1.0.
|
||||
- Addition of UDAPL BTL ("udapl").
|
||||
|
||||
|
||||
1.1.3
|
||||
-----
|
||||
|
||||
- Fix several MPI_*ERRHANDLER* functions with respect to what
|
||||
arguments they allowed and the behavior that they effected. Thanks
|
||||
to Lisandro Dalcin for reporting the problems.
|
||||
|
||||
|
||||
1.1.2
|
||||
-----
|
||||
|
||||
|
@ -37,8 +37,7 @@ int MPI_Errhandler_free(MPI_Errhandler *errhandler)
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||
if (NULL == errhandler ||
|
||||
ompi_errhandler_is_intrinsic(*errhandler)) {
|
||||
if (NULL == errhandler) {
|
||||
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_ARG,
|
||||
"MPI_Errhandler_free");
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ int MPI_File_delete(char *filename, MPI_Info info)
|
||||
OMPI_ERRHANDLER_CHECK(rc, MPI_FILE_NULL, rc, FUNC_NAME);
|
||||
}
|
||||
|
||||
/* Note that MPI-2:9.7 (p265) says that errors in MPI_FILE_OPEN
|
||||
/* Note that MPI-2:9.7 (p261) says that errors in MPI_FILE_OPEN
|
||||
(before the file handle is created) should invoke the default
|
||||
error handler on MPI_FILE_NULL. Hence, if we get a file handle
|
||||
out of ompi_file_open(), invoke the error handler on that. If
|
||||
|
@ -38,8 +38,11 @@ int MPI_File_get_errhandler( MPI_File file, MPI_Errhandler *errhandler)
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||
if (NULL == file ||
|
||||
MPI_FILE_NULL == file) {
|
||||
|
||||
/* Note that MPI-2:9.7 (p261) explicitly says that you are
|
||||
allowed to set the error handler on MPI_FILE_NULL */
|
||||
|
||||
if (NULL == file) {
|
||||
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_FILE,
|
||||
"MPI_File_get_errhandler");
|
||||
} else if (NULL == errhandler) {
|
||||
|
@ -56,7 +56,7 @@ int MPI_File_open(MPI_Comm comm, char *filename, int amode,
|
||||
|
||||
}
|
||||
|
||||
/* Note that MPI-2:9.7 (p265) says that errors in MPI_FILE_OPEN
|
||||
/* Note that MPI-2:9.7 (p261) says that errors in MPI_FILE_OPEN
|
||||
(before the file handle is created) should invoke the default
|
||||
error handler on MPI_FILE_NULL. Hence, if we get a file handle
|
||||
out of ompi_file_open(), invoke the error handler on that. If
|
||||
|
@ -39,7 +39,7 @@ int MPI_File_set_errhandler( MPI_File file, MPI_Errhandler errhandler)
|
||||
if (MPI_PARAM_CHECK) {
|
||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||
|
||||
/* Note that MPI-2:9.7 (p265) explicitly says that you are
|
||||
/* Note that MPI-2:9.7 (p261) explicitly says that you are
|
||||
allowed to set the error handler on MPI_FILE_NULL */
|
||||
|
||||
if (NULL == file) {
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user