Коммит
d41069795f
@ -30,7 +30,7 @@ greek=
|
||||
# command, or with the date (if "git describe" fails) in the form of
|
||||
# "date<date>".
|
||||
|
||||
repo_rev=git8684147
|
||||
repo_rev=git1154ce3
|
||||
|
||||
# If tarball_version is not empty, it is used as the version string in
|
||||
# the tarball filename, regardless of all other versions listed in
|
||||
@ -44,7 +44,7 @@ tarball_version=
|
||||
|
||||
# The date when this release was created
|
||||
|
||||
date="Sep 11, 2017"
|
||||
date="Sep 12, 2017"
|
||||
|
||||
# The shared library version of each of PMIx's public libraries.
|
||||
# These versions are maintained in accordance with the "Library
|
||||
|
@ -214,6 +214,7 @@ typedef uint32_t pmix_rank_t;
|
||||
#define PMIX_LOCAL_CPUSETS "pmix.lcpus" // (char*) colon-delimited cpusets of local peers within the specified nspace
|
||||
#define PMIX_PROC_URI "pmix.puri" // (char*) URI containing contact info for proc
|
||||
#define PMIX_LOCALITY "pmix.loc" // (uint16_t) relative locality of two procs
|
||||
#define PMIX_PARENT_ID "pmix.parent" // (pmix_proc_t) process identifier of my parent process
|
||||
|
||||
/* size info */
|
||||
#define PMIX_UNIV_SIZE "pmix.univ.size" // (uint32_t) #procs in this nspace
|
||||
@ -418,6 +419,7 @@ typedef uint32_t pmix_rank_t;
|
||||
#define PMIX_JOB_CTRL_PROVISION "pmix.jctrl.pvn" // (char*) regex identifying nodes that are to be provisioned
|
||||
#define PMIX_JOB_CTRL_PROVISION_IMAGE "pmix.jctrl.pvnimg" // (char*) name of the image that is to be provisioned
|
||||
#define PMIX_JOB_CTRL_PREEMPTIBLE "pmix.jctrl.preempt" // (bool) job can be pre-empted
|
||||
#define PMIX_JOB_CTRL_TERMINATE "pmix.jctrl.term" // (bool) politely terminate the specified procs
|
||||
|
||||
/* monitoring attributes */
|
||||
#define PMIX_MONITOR_ID "pmix.monitor.id" // (char*) provide a string identifier for this request
|
||||
|
@ -281,6 +281,11 @@ static void _getnb_cbfunc(struct pmix_peer_t *pr,
|
||||
PMIX_ERROR_LOG(PMIX_ERR_BAD_PARAM);
|
||||
return;
|
||||
}
|
||||
|
||||
/* cache the proc id */
|
||||
(void)strncpy(proc.nspace, cb->pname.nspace, PMIX_MAX_NSLEN);
|
||||
proc.rank = cb->pname.rank;
|
||||
|
||||
/* a zero-byte buffer indicates that this recv is being
|
||||
* completed due to a lost connection */
|
||||
if (PMIX_BUFFER_IS_EMPTY(buf)) {
|
||||
@ -288,10 +293,6 @@ static void _getnb_cbfunc(struct pmix_peer_t *pr,
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* cache the proc id */
|
||||
(void)strncpy(proc.nspace, cb->pname.nspace, PMIX_MAX_NSLEN);
|
||||
proc.rank = cb->pname.rank;
|
||||
|
||||
/* unpack the status */
|
||||
cnt = 1;
|
||||
PMIX_BFROPS_UNPACK(rc, pmix_client_globals.myserver,
|
||||
|
@ -218,13 +218,6 @@ static void wait_cbfunc(struct pmix_peer_t *pr,
|
||||
"pmix:client recv callback activated with %d bytes",
|
||||
(NULL == buf) ? -1 : (int)buf->bytes_used);
|
||||
|
||||
/* a zero-byte buffer indicates that this recv is being
|
||||
* completed due to a lost connection */
|
||||
if (PMIX_BUFFER_IS_EMPTY(buf)) {
|
||||
ret = PMIX_ERR_UNREACH;
|
||||
goto report;
|
||||
}
|
||||
|
||||
/* init */
|
||||
memset(nspace, 0, PMIX_MAX_NSLEN+1);
|
||||
|
||||
@ -232,6 +225,12 @@ static void wait_cbfunc(struct pmix_peer_t *pr,
|
||||
ret = PMIX_ERR_BAD_PARAM;
|
||||
goto report;
|
||||
}
|
||||
/* a zero-byte buffer indicates that this recv is being
|
||||
* completed due to a lost connection */
|
||||
if (PMIX_BUFFER_IS_EMPTY(buf)) {
|
||||
ret = PMIX_ERR_UNREACH;
|
||||
goto report;
|
||||
}
|
||||
|
||||
/* unpack the returned status */
|
||||
cnt = 1;
|
||||
|
@ -124,7 +124,9 @@ static pmix_status_t notify_server_of_event(pmix_status_t status,
|
||||
if (PMIX_RANGE_PROC_LOCAL != range) {
|
||||
/* create the msg object */
|
||||
msg = PMIX_NEW(pmix_buffer_t);
|
||||
|
||||
if (NULL == msg) {
|
||||
return PMIX_ERR_NOMEM;
|
||||
}
|
||||
/* pack the command */
|
||||
PMIX_BFROPS_PACK(rc, pmix_client_globals.myserver, msg, &cmd, 1, PMIX_COMMAND);
|
||||
if (PMIX_SUCCESS != rc) {
|
||||
@ -263,9 +265,7 @@ static pmix_status_t notify_server_of_event(pmix_status_t status,
|
||||
cleanup:
|
||||
pmix_output_verbose(2, pmix_globals.debug_output,
|
||||
"client: notifying server - unable to send");
|
||||
if (NULL != msg) {
|
||||
PMIX_RELEASE(msg);
|
||||
}
|
||||
PMIX_RELEASE(msg);
|
||||
/* we were unable to send anything, so we just return the error */
|
||||
return rc;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@
|
||||
#include "src/class/pmix_list.h"
|
||||
#include "src/threads/threads.h"
|
||||
|
||||
pmix_lock_t pmix_global_lock = {
|
||||
PMIX_EXPORT pmix_lock_t pmix_global_lock = {
|
||||
.mutex = PMIX_MUTEX_STATIC_INIT,
|
||||
.cond = PMIX_CONDITION_STATIC_INIT,
|
||||
.active = false
|
||||
|
@ -191,7 +191,7 @@ static int pdlopen_foreachfile(const char *search_path,
|
||||
char *abs_name = NULL;
|
||||
ret = asprintf(&abs_name, "%s/%s", dirs[i], de->d_name);
|
||||
if (0 > ret) {
|
||||
return PMIX_ERR_NOMEM;
|
||||
goto error;
|
||||
}
|
||||
if (NULL == abs_name) {
|
||||
ret = PMIX_ERR_IN_ERRNO;
|
||||
|
@ -280,12 +280,12 @@ PMIX_EXPORT extern int pmix_ptl_base_output;
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define CLOSE_THE_SOCKET(socket) \
|
||||
#define CLOSE_THE_SOCKET(s) \
|
||||
do { \
|
||||
if (0 <= socket) { \
|
||||
shutdown(socket, 2); \
|
||||
close(socket); \
|
||||
socket = -1; \
|
||||
if (0 <= (s)) { \
|
||||
shutdown((s), 2); \
|
||||
close((s)); \
|
||||
(s) = -1; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
@ -65,8 +65,8 @@
|
||||
#endif
|
||||
const char pmix_version_string[] = PMIX_IDENT_STRING;
|
||||
|
||||
int pmix_initialized = 0;
|
||||
bool pmix_init_called = false;
|
||||
PMIX_EXPORT int pmix_initialized = 0;
|
||||
PMIX_EXPORT bool pmix_init_called = false;
|
||||
/* we have to export the pmix_globals object so
|
||||
* all plugins can access it. However, it is included
|
||||
* in the pmix_rename.h file for external protection */
|
||||
|
@ -59,21 +59,21 @@ extern const char pmix_version_string[];
|
||||
* @retval PMIX_ERROR Upon failure.
|
||||
*
|
||||
*/
|
||||
pmix_status_t pmix_rte_init(pmix_proc_type_t type,
|
||||
pmix_info_t info[], size_t ninfo,
|
||||
pmix_ptl_cbfunc_t cbfunc);
|
||||
PMIX_EXPORT pmix_status_t pmix_rte_init(pmix_proc_type_t type,
|
||||
pmix_info_t info[], size_t ninfo,
|
||||
pmix_ptl_cbfunc_t cbfunc);
|
||||
|
||||
/**
|
||||
* Finalize the PMIX layer, including the MCA system.
|
||||
*
|
||||
*/
|
||||
void pmix_rte_finalize(void);
|
||||
PMIX_EXPORT void pmix_rte_finalize(void);
|
||||
|
||||
/**
|
||||
* Internal function. Do not call.
|
||||
*/
|
||||
pmix_status_t pmix_register_params(void);
|
||||
pmix_status_t pmix_deregister_params(void);
|
||||
PMIX_EXPORT pmix_status_t pmix_register_params(void);
|
||||
PMIX_EXPORT pmix_status_t pmix_deregister_params(void);
|
||||
|
||||
END_C_DECLS
|
||||
|
||||
|
@ -486,9 +486,7 @@ static void _deregister_nspace(int sd, short args, void *cbdata)
|
||||
|
||||
/* let our local storage clean up */
|
||||
PMIX_GDS_DEL_NSPACE(rc, cd->proc.nspace);
|
||||
if (PMIX_SUCCESS != rc) {
|
||||
PMIX_ERROR_LOG(rc);
|
||||
}
|
||||
|
||||
/* release any job-level messaging resources */
|
||||
pmix_pnet.local_app_finalized(cd->proc.nspace);
|
||||
|
||||
|
@ -402,9 +402,12 @@ char* pmix_find_absolute_path( char* app_name )
|
||||
if( NULL != abs_app_name ) {
|
||||
char* resolved_path = (char*)malloc(PMIX_PATH_MAX);
|
||||
if (NULL == realpath( abs_app_name, resolved_path )) {
|
||||
free(resolved_path);
|
||||
return NULL;
|
||||
}
|
||||
if( abs_app_name != app_name ) free(abs_app_name);
|
||||
if( abs_app_name != app_name ) {
|
||||
free(abs_app_name);
|
||||
}
|
||||
return resolved_path;
|
||||
}
|
||||
return NULL;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user