Yet another clarification request

Linda Stanberry (linda@k2.llnl.gov)
Mon, 14 Apr 1997 15:24:12 -0700 (PDT)

I'm probably confusing the current spec with previous versions in which
the cancel_fn callback got called whenever any of the other callback
functions failed. Since the current spec makes no such provision, I
assume that MPI_{TEST|WAIT}{SOME|ALL} returns MPI_ERR_IN_STATUS if the
query_fn "computed" an error code other than MPI_SUCCESS (see P.136,
L.4-5). Alternatively, I could read this as saying that if the query_fn
itself fails for some internal error, that MPI_ERR_IN_STATUS gets
returned from the MPI_{TEST|WAIT} call, but I think (hope) that is not
what is meant. So please clarify:

1) What are the return values of query_fn, free_fn, cancel_fn? If the
return values can be other than MPI_SUCCESS, are the functions which
call them (MPI_TEST, MPI_WAIT, MPI_REQUEST_GET_STATUS, MPI_CANCEL,
MPI_REQUEST_FREE) required to perform error recovery steps of any sort,
such as cancelling the request?

2) Is MPI_ERR_IN_STATUS returned by MPI_{TEST|WAIT}{SOME|ALL} if the
query_fn returns other than MPI_SUCCESS or if the query_fn calculates
that one (or more) error codes are to be returned in their status
objects?

Linda