1) We have to be able to raise error handlers within an implementation.
MPI_Raise_error_handler (Comm, ErrorCode)
This function raises the handler associated with the Communicator Comm.
If that handler returns, the return value of MPI_Raise_error_handler is
ErrorCode. (I don't see a way in the handler section of MPI-1 to change
the ErrorCode once it is imput.)
int MPI_Raise_error_handler (MPI_Comm Comm, int ErrorCode)
return (MPI_Raise_error_handler (Comm, MPI_My_error_code)
2) We need to be able to have some clean-up code attached to the finalize
call. When finalize is called, the functions on the clean-up list will
be executed before finalize does its work. These functions will not
necessarily be executed in the order they were added. (We may want to
guarantee just the opposite, but I cannot think of a reason why.)
MPI_Add_finalize_code (Handler, HandlerData)
int MPI_Add_finalize_code (void *Handler(), void *HandlerData)
/* void *Handler (void *HandlerData) */