MPI_Grequest_start - Create new generalized request


SYNOPSIS

       C:

            #include <mpi.h>

            typedef MPI_Grequest_query_function(void *extra_state,
                                                MPI_Status *status);
            typedef MPI_Grequest_free_function(void *extra_state);
            typedef MPI_Grequest_cancel_function(void *extra_state,
                                                 int complete);

            int MPI_Grequest_start(query_fn, free_fn, cancel_fn,
                                   extra_state, request);

            MPI_Grequest_query_function    *query_fn;
            MPI_Grequest_free_function     *free_fn;
            MPI_Grequest_cancel_function   *cancel_fn;
            void                           *extra_state;
            MPI_Request                    *request;

       C++:   (Not currently implemented)

            #include <mpi.h>

            typedef int MPI::Grequest::Query_function(void* extra_state,
                                                      MPI::Status& status);
            typedef int MPI::Grequest::Free_function(void* extra_state);
            typedef int MPI::Grequest::Cancel_function(void* extra_state,
                                                       bool complete);

            static MPI::Grequest MPI::Grequest::Start(
                              const MPI::Grequest::Query_function  query_fn,
                              const MPI::Grequest::Free_function   free_fn,
                              const MPI::Grequest::Cancel_function cancel_fn,
                              void *extra_state);

       Fortran:

            INCLUDE "mpif.h" (or USE MPI)

            SUBROUTINE MPI_GREQUEST_START(query_fn, free_fn, cancel_fn, extra_state, request, ierr)
            EXTERNAL query_fn, free_fn, cancel_fn
            INTEGER (KIND=MPI_ADDRESS_KIND) extra_state
            INTEGER request
            INTEGER ierr
            END

            SUBROUTINE GREQUEST_QUERY_FUNCTION(extra_state, status, ierr)
            INTEGER(KIND=MPI_ADDRESS_KIND) extra_state

            END

            SUBROUTINE GREQUEST_FREE_FUNCTION(extra_state, ierr)
            INTEGER(KIND=MPI_ADDRESS_KIND) extra_state
            INTEGER ierr
            END

            SUBROUTINE GREQUEST_CANCEL_FUNCTION(extra_state, complete, ierr)
            INTEGER(KIND=MPI_ADDRESS_KIND) extra_state
            LOGICAL complete
            INTEGER ierr
            END


STANDARDS

       This release implements the MPI 2.0 standard, as
       documented by the MPI Forum in the July 1997 release of
       MPI:  A Message Passing Interface Standard.


DESCRIPTION

       Calling MPI_Grequest_start() creates a new generalized
       request.  This routine accepts the following parameters:

       query_fn    Specifies the user-written callback function
                   invoked when request status is queried.
                   (function)

       free_fn     Specifies the user-written callback function
                   invoked when the request is freed.
                   (function)

       cancel_fn   Specifies the user-written callback function
                   invoked when the request is cancelled.
                   (function)

       extra_state Specifies a void pointer associated with this
                   request.  Each callback function is passed the
                   extra_state value associated with the request
                   on which it is operating.    (void pointer)

       request     Returns the newly-created generalized request.
                   (handle)

       ierr        Specifies the error code of the operation.  If
                   no error occured, MPI_SUCCESS is returned.
                   (integer)


NOTES

       All MPI routines in Fortran (except for MPI_Wtime(3) and
       MPI_Wtick(3)) have an additional ierr argument at the end
       of the argument list.  ierr is an integer and has the same
       meaning as the return value of the routine in C.  In
       Fortran, MPI routines are subroutines and are invoked with

       objects (for example, MPI_Datatype and MPI_Comm) are of
       type integer.


SEE ALSO

       MPI_Grequest_complete(3), MPI_Status_set_elements(3),
       MPI_Status_set_cancelled(3)


Man(1) output converted with man2html