pmix: do not invoke PMIX_INFO_CREATE() with a zero size
Thanks Lisandro Dalcin for the report Fixes open-mpi/ompi#3854 Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
родитель
4d3e22e815
Коммит
9124afbeae
@ -470,17 +470,12 @@ int pmix1_get(const opal_process_name_t *proc, const char *key,
|
||||
pptr = NULL;
|
||||
}
|
||||
|
||||
if (NULL != info) {
|
||||
ninfo = opal_list_get_size(info);
|
||||
if (0 < ninfo) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&pinfo[n].value, ival);
|
||||
}
|
||||
} else {
|
||||
pinfo = NULL;
|
||||
if (NULL != info && 0 < (ninfo = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&pinfo[n].value, ival);
|
||||
}
|
||||
} else {
|
||||
pinfo = NULL;
|
||||
@ -563,15 +558,12 @@ int pmix1_getnb(const opal_process_name_t *proc, const char *key,
|
||||
op->p.rank = PMIX_RANK_WILDCARD;
|
||||
}
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&op->info[n].value, ival);
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&op->info[n].value, ival);
|
||||
}
|
||||
}
|
||||
|
||||
@ -683,8 +675,7 @@ int pmix1_lookup(opal_list_t *data, opal_list_t *info)
|
||||
(void)strncpy(pdata[n++].key, d->value.key, PMIX_MAX_KEYLEN);
|
||||
}
|
||||
|
||||
if (NULL != info) {
|
||||
ninfo = opal_list_get_size(info);
|
||||
if (NULL != info && (0 < (ninfo = opal_list_get_size(info)))) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
@ -832,16 +823,13 @@ int pmix1_lookupnb(char **keys, opal_list_t *info,
|
||||
op->lkcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -857,8 +845,7 @@ int pmix1_unpublish(char **keys, opal_list_t *info)
|
||||
pmix_info_t *pinfo;
|
||||
opal_value_t *iptr;
|
||||
|
||||
if (NULL != info) {
|
||||
ninfo = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (ninfo = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
@ -890,16 +877,13 @@ int pmix1_unpublishnb(char **keys, opal_list_t *info,
|
||||
op->opcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -139,8 +139,7 @@ int pmix1_server_init(opal_pmix_server_module_t *module,
|
||||
}
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
@ -248,8 +247,7 @@ int pmix1_server_register_nspace(opal_jobid_t jobid,
|
||||
opal_list_append(&mca_pmix_ext1x_component.jobids, &job->super);
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
@ -260,14 +258,16 @@ int pmix1_server_register_nspace(opal_jobid_t jobid,
|
||||
* that list to another array */
|
||||
pmapinfo = (opal_list_t*)kv->data.ptr;
|
||||
szmap = opal_list_get_size(pmapinfo);
|
||||
PMIX_INFO_CREATE(pmap, szmap);
|
||||
pinfo[n].value.data.array.array = (struct pmix_info_t*)pmap;
|
||||
pinfo[n].value.data.array.size = szmap;
|
||||
m = 0;
|
||||
OPAL_LIST_FOREACH(k2, pmapinfo, opal_value_t) {
|
||||
(void)strncpy(pmap[m].key, k2->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&pmap[m].value, k2);
|
||||
++m;
|
||||
if (0 < szmap) {
|
||||
PMIX_INFO_CREATE(pmap, szmap);
|
||||
pinfo[n].value.data.array.array = (struct pmix_info_t*)pmap;
|
||||
pinfo[n].value.data.array.size = szmap;
|
||||
m = 0;
|
||||
OPAL_LIST_FOREACH(k2, pmapinfo, opal_value_t) {
|
||||
(void)strncpy(pmap[m].key, k2->key, PMIX_MAX_KEYLEN);
|
||||
pmix1_value_load(&pmap[m].value, k2);
|
||||
++m;
|
||||
}
|
||||
}
|
||||
OPAL_LIST_RELEASE(pmapinfo);
|
||||
} else {
|
||||
@ -429,8 +429,7 @@ int pmix1_server_notify_error(int status,
|
||||
op->cbdata = cbdata;
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
|
@ -190,17 +190,14 @@ static void return_local_event_hdlr(int status, opal_list_t *results,
|
||||
if (NULL != cd->pmixcbfunc) {
|
||||
op = OBJ_NEW(ext2x_opcaddy_t);
|
||||
|
||||
if (NULL != results) {
|
||||
/* convert the list of results to an array of info */
|
||||
op->ninfo = opal_list_get_size(results);
|
||||
if (0 < op->ninfo) {
|
||||
PMIX_INFO_CREATE(op->info, op->ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(kv, cd->info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
if (NULL != results && 0 < (op->ninfo = opal_list_get_size(results))) {
|
||||
/* convert the list of results to an array of info */
|
||||
PMIX_INFO_CREATE(op->info, op->ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(kv, cd->info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
/* convert the status */
|
||||
@ -811,13 +808,17 @@ void ext2x_value_load(pmix_value_t *v,
|
||||
v->data.darray = (pmix_data_array_t*)malloc(sizeof(pmix_data_array_t));
|
||||
v->data.darray->type = PMIX_INFO;
|
||||
v->data.darray->size = opal_list_get_size(list);
|
||||
PMIX_INFO_CREATE(info, v->data.darray->size);
|
||||
v->data.darray->array = info;
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(val, list, opal_value_t) {
|
||||
(void)strncpy(info[n].key, val->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&info[n].value, val);
|
||||
++n;
|
||||
if (0 < v->data.darray->size) {
|
||||
PMIX_INFO_CREATE(info, v->data.darray->size);
|
||||
v->data.darray->array = info;
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(val, list, opal_value_t) {
|
||||
(void)strncpy(info[n].key, val->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&info[n].value, val);
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
v->data.darray->array = NULL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -1062,16 +1063,13 @@ static void register_handler(opal_list_t *event_codes,
|
||||
}
|
||||
|
||||
/* convert the list of info to an array of pmix_info_t */
|
||||
if (NULL != info) {
|
||||
op->ninfo = opal_list_get_size(info);
|
||||
if (0 < op->ninfo) {
|
||||
PMIX_INFO_CREATE(op->info, op->ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->ninfo = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1176,16 +1174,13 @@ static int notify_event(int status,
|
||||
prange = ext2x_convert_opalrange(range);
|
||||
|
||||
/* convert the list of info */
|
||||
if (NULL != info) {
|
||||
op->ninfo = opal_list_get_size(info);
|
||||
if (0 < op->ninfo) {
|
||||
PMIX_INFO_CREATE(op->info, op->ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->ninfo = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2016 Research Organization for Information Science
|
||||
* Copyright (c) 2014-2017 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
@ -78,19 +78,13 @@ int ext2x_client_init(opal_list_t *ilist)
|
||||
}
|
||||
|
||||
/* convert the incoming list to info structs */
|
||||
if (NULL != ilist) {
|
||||
ninfo = opal_list_get_size(ilist);
|
||||
if (0 < ninfo) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, ilist, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
pinfo = NULL;
|
||||
ninfo = 0;
|
||||
if (NULL != ilist && 0 < (ninfo = opal_list_get_size(ilist))) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, ilist, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
pinfo = NULL;
|
||||
@ -501,16 +495,13 @@ int ext2x_get(const opal_process_name_t *proc, const char *key,
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (0 < sz) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -612,16 +603,13 @@ int ext2x_getnb(const opal_process_name_t *proc, const char *key,
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(val, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, val->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, val);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(val, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, val->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, val);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -749,16 +737,13 @@ int ext2x_lookup(opal_list_t *data, opal_list_t *info)
|
||||
++n;
|
||||
}
|
||||
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (0 < sz) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pinfo[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pinfo[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -899,16 +884,13 @@ int ext2x_lookupnb(char **keys, opal_list_t *info,
|
||||
op->lkcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
ret = PMIx_Lookup_nb(keys, op->info, op->sz, lk_cbfunc, op);
|
||||
@ -930,8 +912,7 @@ int ext2x_unpublish(char **keys, opal_list_t *info)
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
if (NULL != info) {
|
||||
ninfo = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (ninfo = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
@ -970,16 +951,13 @@ int ext2x_unpublishnb(char **keys, opal_list_t *info,
|
||||
op->opcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -921,15 +921,12 @@ static void info_cbfunc(int status,
|
||||
pcaddy->status = ext2x_convert_opalrc(status);
|
||||
|
||||
/* convert the list to a pmix_info_t array */
|
||||
if (NULL != info) {
|
||||
pcaddy->ninfo = opal_list_get_size(info);
|
||||
if (0 < pcaddy->ninfo) {
|
||||
PMIX_INFO_CREATE(pcaddy->info, pcaddy->ninfo);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(pcaddy->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pcaddy->info[n].value, kv);
|
||||
}
|
||||
if (NULL != info && 0 < (pcaddy->ninfo = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pcaddy->info, pcaddy->ninfo);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(pcaddy->info[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pcaddy->info[n].value, kv);
|
||||
}
|
||||
}
|
||||
/* we are done with the incoming data */
|
||||
|
@ -111,8 +111,7 @@ int ext2x_server_init(opal_pmix_server_module_t *module,
|
||||
++opal_pmix_base.initialized;
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
@ -259,8 +258,7 @@ int ext2x_server_register_nspace(opal_jobid_t jobid,
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
@ -271,16 +269,18 @@ int ext2x_server_register_nspace(opal_jobid_t jobid,
|
||||
* that list to another array */
|
||||
pmapinfo = (opal_list_t*)kv->data.ptr;
|
||||
szmap = opal_list_get_size(pmapinfo);
|
||||
PMIX_INFO_CREATE(pmap, szmap);
|
||||
pinfo[n].value.data.darray = (pmix_data_array_t*)calloc(1, sizeof(pmix_data_array_t));
|
||||
pinfo[n].value.data.darray->type = PMIX_INFO;
|
||||
pinfo[n].value.data.darray->array = (struct pmix_info_t*)pmap;
|
||||
pinfo[n].value.data.darray->size = szmap;
|
||||
m = 0;
|
||||
OPAL_LIST_FOREACH(k2, pmapinfo, opal_value_t) {
|
||||
(void)strncpy(pmap[m].key, k2->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pmap[m].value, k2);
|
||||
++m;
|
||||
if (0 < szmap) {
|
||||
PMIX_INFO_CREATE(pmap, szmap);
|
||||
pinfo[n].value.data.darray = (pmix_data_array_t*)calloc(1, sizeof(pmix_data_array_t));
|
||||
pinfo[n].value.data.darray->type = PMIX_INFO;
|
||||
pinfo[n].value.data.darray->array = (struct pmix_info_t*)pmap;
|
||||
pinfo[n].value.data.darray->size = szmap;
|
||||
m = 0;
|
||||
OPAL_LIST_FOREACH(k2, pmapinfo, opal_value_t) {
|
||||
(void)strncpy(pmap[m].key, k2->key, PMIX_MAX_KEYLEN);
|
||||
ext2x_value_load(&pmap[m].value, k2);
|
||||
++m;
|
||||
}
|
||||
}
|
||||
OPAL_LIST_RELEASE(pmapinfo);
|
||||
} else {
|
||||
@ -509,8 +509,7 @@ int ext2x_server_notify_event(int status,
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2016 Research Organization for Information Science
|
||||
* Copyright (c) 2014-2017 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
@ -78,19 +78,13 @@ int pmix2x_client_init(opal_list_t *ilist)
|
||||
}
|
||||
|
||||
/* convert the incoming list to info structs */
|
||||
if (NULL != ilist) {
|
||||
ninfo = opal_list_get_size(ilist);
|
||||
if (0 < ninfo) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, ilist, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
pinfo = NULL;
|
||||
ninfo = 0;
|
||||
if (NULL != ilist && 0 < (ninfo = opal_list_get_size(ilist))) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, ilist, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
pinfo = NULL;
|
||||
@ -502,16 +496,13 @@ int pmix2x_get(const opal_process_name_t *proc, const char *key,
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (0 < sz) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(ival, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, ival->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&pinfo[n].value, ival);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -616,16 +607,13 @@ int pmix2x_getnb(const opal_process_name_t *proc, const char *key,
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(val, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, val->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&op->info[n].value, val);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(val, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, val->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&op->info[n].value, val);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -754,16 +742,13 @@ int pmix2x_lookup(opal_list_t *data, opal_list_t *info)
|
||||
++n;
|
||||
}
|
||||
|
||||
if (NULL != info) {
|
||||
sz = opal_list_get_size(info);
|
||||
if (0 < sz) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&pinfo[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&pinfo[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
@ -906,16 +891,13 @@ int pmix2x_lookupnb(char **keys, opal_list_t *info,
|
||||
op->lkcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
ret = PMIx_Lookup_nb(keys, op->info, op->sz, lk_cbfunc, op);
|
||||
@ -937,8 +919,7 @@ int pmix2x_unpublish(char **keys, opal_list_t *info)
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
if (NULL != info) {
|
||||
ninfo = opal_list_get_size(info);
|
||||
if (NULL != info && 0 < (ninfo = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, ninfo);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
@ -977,16 +958,13 @@ int pmix2x_unpublishnb(char **keys, opal_list_t *info,
|
||||
op->opcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
|
||||
if (NULL != info) {
|
||||
op->sz = opal_list_get_size(info);
|
||||
if (0 < op->sz) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
if (NULL != info && 0 < (op->sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(op->info, op->sz);
|
||||
n=0;
|
||||
OPAL_LIST_FOREACH(iptr, info, opal_value_t) {
|
||||
(void)strncpy(op->info[n].key, iptr->key, PMIX_MAX_KEYLEN);
|
||||
pmix2x_value_load(&op->info[n].value, iptr);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user