Blame src/mpid/ch3/src/ch3u_handle_revoke_pkt.c

Packit 0848f5
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
Packit 0848f5
/*
Packit 0848f5
 *  (C) 2001 by Argonne National Laboratory.
Packit 0848f5
 *      See COPYRIGHT in top-level directory.
Packit 0848f5
 */
Packit 0848f5
Packit 0848f5
#include "mpidimpl.h"
Packit 0848f5
Packit 0848f5
#undef FUNCNAME
Packit 0848f5
#define FUNCNAME MPIDI_CH3_PktHandler_Revoke
Packit 0848f5
#undef FCNAME
Packit 0848f5
#define FCNAME MPL_QUOTE(FUNCNAME)
Packit 0848f5
int MPIDI_CH3_PktHandler_Revoke(MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
Packit 0848f5
                                void *data ATTRIBUTE((unused)),
Packit 0848f5
                                MPIDI_msg_sz_t *buflen, MPID_Request **rreqp)
Packit 0848f5
{
Packit 0848f5
    MPIDI_CH3_Pkt_revoke_t *revoke_pkt = &pkt->revoke;
Packit 0848f5
    int mpi_errno = MPI_SUCCESS;
Packit 0848f5
    MPID_Comm *comm_ptr = NULL;
Packit 0848f5
Packit 0848f5
    MPIU_DBG_MSG_D(CH3_OTHER, VERBOSE, "Received revoke pkt from %d", vc->pg_rank);
Packit 0848f5
Packit 0848f5
    /* Search through all of the communicators to find the right context_id */
Packit 0848f5
    MPIDI_CH3I_Comm_find(revoke_pkt->revoked_comm, &comm_ptr);
Packit 0848f5
    if (comm_ptr == NULL)
Packit 0848f5
        MPIR_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**ch3|postrecv",
Packit 0848f5
                "**ch3|postrecv %s", "MPIDI_CH3_PKT_REVOKE");
Packit 0848f5
Packit 0848f5
    mpi_errno = MPID_Comm_revoke(comm_ptr, 1);
Packit 0848f5
    if (mpi_errno != MPI_SUCCESS)
Packit 0848f5
        MPIR_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**ch3|postrecv",
Packit 0848f5
                "**ch3|postrecv %s", "MPIDI_CH3_PKT_REVOKE");
Packit 0848f5
Packit 0848f5
    /* There is no request associated with a revoke packet */
Packit 0848f5
    *rreqp = NULL;
Packit 0848f5
Packit 0848f5
fn_fail:
Packit 0848f5
    return mpi_errno;
Packit 0848f5
}