예제 #1
0
/**
 * Measurement wrapper for MPI_Comm_disconnect
 * @note Auto-generated by wrapgen from template: comm_mgnt.w
 * @note C interface
 * @note Introduced with MPI 2.0
 * @ingroup spawn
 */
int MPI_Comm_disconnect(MPI_Comm* comm)
{
  const int event_gen_active = IS_EVENT_GEN_ON_FOR(SPAWN);
  int       return_val;

  if (event_gen_active)
  {
    EVENT_GEN_OFF();
    esd_enter(epk_mpi_regid[EPK__MPI_COMM_DISCONNECT]);
  }

  epk_comm_free(*comm);
  return_val = PMPI_Comm_disconnect(comm);

  if (event_gen_active)
  {
    esd_exit(epk_mpi_regid[EPK__MPI_COMM_DISCONNECT]);
    EVENT_GEN_ON();
  }

  return return_val;
}
예제 #2
0
int MPI_Comm_disconnect(MPI_Comm *comm)
{
    int g2g = 1;
    char call[COLLCHK_SM_STRLEN];

    sprintf(call, "COMM_DISCONNECT");

    /* Check if init has been called */
    g2g = CollChk_is_init();

    if(g2g) {
        /* check for call consistancy */
        CollChk_same_call(*comm, call);

        /* make the call */
        return PMPI_Comm_disconnect(comm); 
    }
    else {
        /* init not called */
        return CollChk_err_han("MPI_Init() has not been called!",
                               COLLCHK_ERR_NOT_INIT, call, *comm);
    }
}
예제 #3
0
int MPI_Comm_disconnect(MPI_Comm * comm)
{
  return PMPI_Comm_disconnect(comm);
}