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").
|
- 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
|
1.1.2
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
@ -37,8 +37,7 @@ int MPI_Errhandler_free(MPI_Errhandler *errhandler)
|
|||||||
|
|
||||||
if (MPI_PARAM_CHECK) {
|
if (MPI_PARAM_CHECK) {
|
||||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
||||||
if (NULL == errhandler ||
|
if (NULL == errhandler) {
|
||||||
ompi_errhandler_is_intrinsic(*errhandler)) {
|
|
||||||
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_ARG,
|
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_ARG,
|
||||||
"MPI_Errhandler_free");
|
"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);
|
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
|
(before the file handle is created) should invoke the default
|
||||||
error handler on MPI_FILE_NULL. Hence, if we get a file handle
|
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
|
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) {
|
if (MPI_PARAM_CHECK) {
|
||||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
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,
|
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_FILE,
|
||||||
"MPI_File_get_errhandler");
|
"MPI_File_get_errhandler");
|
||||||
} else if (NULL == 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
|
(before the file handle is created) should invoke the default
|
||||||
error handler on MPI_FILE_NULL. Hence, if we get a file handle
|
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
|
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) {
|
if (MPI_PARAM_CHECK) {
|
||||||
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
|
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 */
|
allowed to set the error handler on MPI_FILE_NULL */
|
||||||
|
|
||||||
if (NULL == file) {
|
if (NULL == file) {
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user