|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* (C) 2001 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* This file contains a simple PMI-based implementation of the name server routines.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#include "mpiimpl.h"
|
|
Packit Service |
c5cf8c |
#include "namepub.h"
|
|
Packit Service |
c5cf8c |
#ifdef USE_PMI2_API
|
|
Packit Service |
c5cf8c |
#include "pmi2.h"
|
|
Packit Service |
c5cf8c |
#elif defined(USE_PMIX_API)
|
|
Packit Service |
c5cf8c |
#include "pmix.h"
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
#include "pmi.h"
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* style: allow:fprintf:1 sig:0 */
|
|
Packit Service |
c5cf8c |
/* For writing the name/service pair */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* Define the name service handle */
|
|
Packit Service |
c5cf8c |
#define MPID_MAX_NAMEPUB 64
|
|
Packit Service |
c5cf8c |
struct MPID_NS_Handle {
|
|
Packit Service |
c5cf8c |
int dummy;
|
|
Packit Service |
c5cf8c |
}; /* unused for now */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Create
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Create(const MPIR_Info * info_ptr, MPID_NS_Handle * handle_ptr)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
static struct MPID_NS_Handle nsHandleWithNoData;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(info_ptr);
|
|
Packit Service |
c5cf8c |
/* MPID_NS_Create() should always create a valid handle */
|
|
Packit Service |
c5cf8c |
*handle_ptr = &nsHandleWithNoData; /* The name service needs no local data */
|
|
Packit Service |
c5cf8c |
return 0;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Publish
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Publish(MPID_NS_Handle handle, const MPIR_Info * info_ptr,
|
|
Packit Service |
c5cf8c |
const char service_name[], const char port[])
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno = MPI_SUCCESS;
|
|
Packit Service |
c5cf8c |
int rc;
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(info_ptr);
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(handle);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef USE_PMI2_API
|
|
Packit Service |
c5cf8c |
/* release the global CS for PMI calls */
|
|
Packit Service |
c5cf8c |
MPID_THREAD_CS_EXIT(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
|
|
Packit Service |
c5cf8c |
rc = PMI2_Nameserv_publish(service_name, info_ptr, port);
|
|
Packit Service |
c5cf8c |
MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
|
|
Packit Service |
c5cf8c |
#elif defined(USE_PMIX_API)
|
|
Packit Service |
c5cf8c |
MPIR_Assert(0);
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
rc = PMI_Publish_name(service_name, port);
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
MPIR_ERR_CHKANDJUMP1(rc, mpi_errno, MPI_ERR_NAME, "**namepubnotpub", "**namepubnotpub %s",
|
|
Packit Service |
c5cf8c |
service_name);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
fn_fail:
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Lookup
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Lookup(MPID_NS_Handle handle, const MPIR_Info * info_ptr,
|
|
Packit Service |
c5cf8c |
const char service_name[], char port[])
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno = MPI_SUCCESS;
|
|
Packit Service |
c5cf8c |
int rc;
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(info_ptr);
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(handle);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef USE_PMI2_API
|
|
Packit Service |
c5cf8c |
/* release the global CS for PMI calls */
|
|
Packit Service |
c5cf8c |
MPID_THREAD_CS_EXIT(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
|
|
Packit Service |
c5cf8c |
rc = PMI2_Nameserv_lookup(service_name, info_ptr, port, MPI_MAX_PORT_NAME);
|
|
Packit Service |
c5cf8c |
MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
|
|
Packit Service |
c5cf8c |
#elif defined(USE_PMIX_API)
|
|
Packit Service |
c5cf8c |
MPIR_Assert(0);
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
rc = PMI_Lookup_name(service_name, port);
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
MPIR_ERR_CHKANDJUMP1(rc, mpi_errno, MPI_ERR_NAME, "**namepubnotfound", "**namepubnotfound %s",
|
|
Packit Service |
c5cf8c |
service_name);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
fn_fail:
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Unpublish
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Unpublish(MPID_NS_Handle handle, const MPIR_Info * info_ptr, const char service_name[])
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno = MPI_SUCCESS;
|
|
Packit Service |
c5cf8c |
int rc;
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(info_ptr);
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(handle);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef USE_PMI2_API
|
|
Packit Service |
c5cf8c |
/* release the global CS for PMI calls */
|
|
Packit Service |
c5cf8c |
MPID_THREAD_CS_EXIT(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
|
|
Packit Service |
c5cf8c |
rc = PMI2_Nameserv_unpublish(service_name, info_ptr);
|
|
Packit Service |
c5cf8c |
MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
|
|
Packit Service |
c5cf8c |
#elif defined(USE_PMIX_API)
|
|
Packit Service |
c5cf8c |
MPIR_Assert(0);
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
rc = PMI_Unpublish_name(service_name);
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
MPIR_ERR_CHKANDJUMP1(rc, mpi_errno, MPI_ERR_SERVICE, "**namepubnotunpub",
|
|
Packit Service |
c5cf8c |
"**namepubnotunpub %s", service_name);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
fn_fail:
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Free
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Free(MPID_NS_Handle * handle_ptr)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
/* MPID_NS_Handle is Null */
|
|
Packit Service |
c5cf8c |
MPL_UNREFERENCED_ARG(handle_ptr);
|
|
Packit Service |
c5cf8c |
return 0;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#if 0
|
|
Packit Service |
c5cf8c |
/* PMI_Put/Get version */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; -*- */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* (C) 2001 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* This file contains a simple implementation of the name server routines,
|
|
Packit Service |
c5cf8c |
* using the PMI interface.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
#include "mpiimpl.h"
|
|
Packit Service |
c5cf8c |
#include "namepub.h"
|
|
Packit Service |
c5cf8c |
#include "pmi.h"
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* Define the name service handle */
|
|
Packit Service |
c5cf8c |
struct MPID_NS_Handle {
|
|
Packit Service |
c5cf8c |
char *kvsname;
|
|
Packit Service |
c5cf8c |
};
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Create
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Create(const MPIR_Info * info_ptr, MPID_NS_Handle * handle_ptr)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int err;
|
|
Packit Service |
c5cf8c |
int length;
|
|
Packit Service |
c5cf8c |
char *pmi_namepub_kvs;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
*handle_ptr = (MPID_NS_Handle) MPL_malloc(sizeof(struct MPID_NS_Handle));
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (!*handle_ptr) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
|
|
Packit Service |
c5cf8c |
"**nomem", 0);
|
|
Packit Service |
c5cf8c |
return err;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
err = PMI_KVS_Get_name_length_max(&length);
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (err != PMI_SUCCESS) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
|
|
Packit Service |
c5cf8c |
"**fail", 0);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
(*handle_ptr)->kvsname = (char *) MPL_malloc(length);
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (!(*handle_ptr)->kvsname) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
|
|
Packit Service |
c5cf8c |
"**nomem", 0);
|
|
Packit Service |
c5cf8c |
return err;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
pmi_namepub_kvs = getenv("PMI_NAMEPUB_KVS");
|
|
Packit Service |
c5cf8c |
if (pmi_namepub_kvs) {
|
|
Packit Service |
c5cf8c |
MPL_strncpy((*handle_ptr)->kvsname, pmi_namepub_kvs, length);
|
|
Packit Service |
c5cf8c |
} else {
|
|
Packit Service |
c5cf8c |
err = PMI_KVS_Get_my_name((*handle_ptr)->kvsname, length);
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (err != PMI_SUCCESS) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__,
|
|
Packit Service |
c5cf8c |
MPI_ERR_OTHER, "**fail", 0);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*printf("namepub kvs: <%s>\n", (*handle_ptr)->kvsname);fflush(stdout); */
|
|
Packit Service |
c5cf8c |
return 0;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Publish
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Publish(MPID_NS_Handle handle, const MPIR_Info * info_ptr,
|
|
Packit Service |
c5cf8c |
const char service_name[], const char port[])
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int err;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*printf("publish kvs: <%s>\n", handle->kvsname);fflush(stdout); */
|
|
Packit Service |
c5cf8c |
err = PMI_KVS_Put(handle->kvsname, service_name, port);
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (err != PMI_SUCCESS) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
|
|
Packit Service |
c5cf8c |
"**pmi_kvs_put", 0);
|
|
Packit Service |
c5cf8c |
return err;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
err = PMI_KVS_Commit(handle->kvsname);
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (err != PMI_SUCCESS) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
|
|
Packit Service |
c5cf8c |
"**pmi_kvs_commit", 0);
|
|
Packit Service |
c5cf8c |
return err;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
return 0;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Lookup
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Lookup(MPID_NS_Handle handle, const MPIR_Info * info_ptr,
|
|
Packit Service |
c5cf8c |
const char service_name[], char port[])
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int err;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*printf("lookup kvs: <%s>\n", handle->kvsname);fflush(stdout); */
|
|
Packit Service |
c5cf8c |
err = PMI_KVS_Get(handle->kvsname, service_name, port, MPI_MAX_PORT_NAME);
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (err != PMI_SUCCESS) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_NAME,
|
|
Packit Service |
c5cf8c |
"**pmi_kvs_get", 0);
|
|
Packit Service |
c5cf8c |
return err;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if (port[0] == '\0') {
|
|
Packit Service |
c5cf8c |
return MPI_ERR_NAME;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
return 0;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Unpublish
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Unpublish(MPID_NS_Handle handle, const MPIR_Info * info_ptr, const char service_name[])
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int err;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*printf("unpublish kvs: <%s>\n", handle->kvsname);fflush(stdout); */
|
|
Packit Service |
c5cf8c |
/* This assumes you can put the same key more than once which breaks the PMI specification */
|
|
Packit Service |
c5cf8c |
err = PMI_KVS_Put(handle->kvsname, service_name, "");
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (err != PMI_SUCCESS) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
|
|
Packit Service |
c5cf8c |
"**pmi_kvs_put", 0);
|
|
Packit Service |
c5cf8c |
return err;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
err = PMI_KVS_Commit(handle->kvsname);
|
|
Packit Service |
c5cf8c |
/* --BEGIN ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
if (err != PMI_SUCCESS) {
|
|
Packit Service |
c5cf8c |
err =
|
|
Packit Service |
c5cf8c |
MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER,
|
|
Packit Service |
c5cf8c |
"**pmi_kvs_commit", 0);
|
|
Packit Service |
c5cf8c |
return err;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
/* --END ERROR HANDLING-- */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
return 0;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#undef FUNCNAME
|
|
Packit Service |
c5cf8c |
#define FUNCNAME MPID_NS_Free
|
|
Packit Service |
c5cf8c |
#undef FCNAME
|
|
Packit Service |
c5cf8c |
#define FCNAME MPL_QUOTE(FUNCNAME)
|
|
Packit Service |
c5cf8c |
int MPID_NS_Free(MPID_NS_Handle * handle_ptr)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int err;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPL_free((*handle_ptr)->kvsname);
|
|
Packit Service |
c5cf8c |
MPL_free(*handle_ptr);
|
|
Packit Service |
c5cf8c |
*handle_ptr = 0;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
return 0;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
#endif
|