Re: Problem with error handlers

Marc Snir (snir@watson.ibm.com)
Fri, 20 Jun 1997 17:22:09 -0400




There is a problem with error handlers -- what is the type of
MPI_ERRORS_RETURN? It used to be MPI_Handler_function, but that is now
deprecated in favor of MPI_Comm_errhandler_fn, MPI_File_errhandler_fn, and
MPI_Win_errhandler_fn.

Since there are now three types of errorhandler functions,
MPI_ERRORS_RETURN, MPI_ERRORS_ABORT, and MPI_ERRORS_THROW_EXCEPTIONS will
have type matching problems. I see two choices:

************
The current desing is that there are three types of error handling
functions, and three typedefs of
error handling callbacks, but only one type of error handler opaque object,
namely MPI_Errhandler.
MPI_ERRORS_RETURN is not the callback function, it is the opaque error
handler object, that is
associated with an error handling callback function. Normally, if an error
handling obejct was
created with MPI_COMM_CREATE_ERRHANDLER, then it can be used only with
communicators (same for
files and windows). The predefined error handler objects are anomalous in
that they can be used
with communicators, files and windows. This is explicitly spelled out (pg
61, line 23).
No binding problem that I can see.