Re: generalized request

Parkson Wong (parkson@nas.nasa.gov)
Mon, 23 Sep 1996 10:54:18 -0700 (PDT)

> > > The fundamental difference seems to be between associating the info
> > > with the request or the status. With the proposed system you save 4
> > > functions (you don't need MPI_Set_status_error since error is not
> > > opaque). The tradeoff is that you need to have a status at the
> > > MPI_Request_mark_complete. When you do a Test/Wait, what is put in
> > > the supplied status? I assume it is the same info that was provided
> > > in the status at the MPI_Request_mark_complete. I think the current
> > > design is cleaner since you only have 1 status. You need to pass or
> > > create a status object where ever MPI_Request_mark_complete is called
> > > in the new design. I am happy to hear counter arguments.
> >
> > When you do a test/wait, if the request is completed, the status
> > supplied by MPI_Request_mark_complete is request. There is only one status.
>
> I'm afraid I am missing something here. I'm not sure what the last
> paragraph means. Sorry for being slow. If we can't resolve it now we
> can do it at the meeting since it seems to be binding.
>

Oops, typo. The paragraph should read

When you do a test/wait, if the request is completed, the status
supplied by MPI_Request_mark_complete is returned. There is only one status.

Further clarification:

When a user program calls MPI_{Test,Wait}, if the request is marked as completed
by a previous call of MPI_Request_mark_compelte, the status (or content of that
status) supplied by MPI_Request_mark_compelte is returned to the user. If the
request is not marked as complete, the test will return flag=false, and status
is undefined.

So there is only one status involved, the one passed in MPI_Request_mark_compelte.

-- parkson