There is a cleanup label, so I expect to use it in all cases.
This commit was SVN r14329.
Этот коммит содержится в:
родитель
d1ce4a44ca
Коммит
604e79f2d2
@ -60,25 +60,20 @@ int orte_gpr_replica_put(orte_std_cntr_t cnt, orte_gpr_value_t **values)
|
|||||||
/* first check for error - all keyvals must have a non-NULL string key */
|
/* first check for error - all keyvals must have a non-NULL string key */
|
||||||
for (j=0; j < val->cnt; j++) {
|
for (j=0; j < val->cnt; j++) {
|
||||||
if (NULL == (val->keyvals[j])->key) {
|
if (NULL == (val->keyvals[j])->key) {
|
||||||
ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM);
|
rc = ORTE_ERR_BAD_PARAM;
|
||||||
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
|
goto CLEANUP;
|
||||||
return ORTE_ERR_BAD_PARAM;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find the segment */
|
/* find the segment */
|
||||||
if (ORTE_SUCCESS != (rc = orte_gpr_replica_find_seg(&seg, true, val->segment))) {
|
if (ORTE_SUCCESS != (rc = orte_gpr_replica_find_seg(&seg, true, val->segment))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
goto CLEANUP;
|
||||||
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
|
|
||||||
return rc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* convert tokens to array of itags */
|
/* convert tokens to array of itags */
|
||||||
if (ORTE_SUCCESS != (rc = orte_gpr_replica_get_itag_list(&itags, seg,
|
if (ORTE_SUCCESS != (rc = orte_gpr_replica_get_itag_list(&itags, seg,
|
||||||
val->tokens, &(val->num_tokens)))) {
|
val->tokens, &(val->num_tokens)))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
goto CLEANUP;
|
||||||
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
|
|
||||||
return rc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ORTE_SUCCESS != (rc = orte_gpr_replica_put_fn(val->addr_mode, seg, itags, val->num_tokens,
|
if (ORTE_SUCCESS != (rc = orte_gpr_replica_put_fn(val->addr_mode, seg, itags, val->num_tokens,
|
||||||
@ -87,17 +82,16 @@ int orte_gpr_replica_put(orte_std_cntr_t cnt, orte_gpr_value_t **values)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ORTE_SUCCESS != (rc = orte_gpr_replica_check_events())) {
|
if (ORTE_SUCCESS != (rc = orte_gpr_replica_check_events())) {
|
||||||
ORTE_ERROR_LOG(rc);
|
|
||||||
goto CLEANUP;
|
goto CLEANUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL != itags) {
|
if (NULL != itags) {
|
||||||
free(itags);
|
free(itags);
|
||||||
|
itags = NULL;
|
||||||
}
|
}
|
||||||
itags = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CLEANUP:
|
CLEANUP: /* or not ... */
|
||||||
/* release list of itags */
|
/* release list of itags */
|
||||||
if (NULL != itags) {
|
if (NULL != itags) {
|
||||||
free(itags);
|
free(itags);
|
||||||
@ -105,12 +99,13 @@ CLEANUP:
|
|||||||
|
|
||||||
if (ORTE_SUCCESS == rc) {
|
if (ORTE_SUCCESS == rc) {
|
||||||
rc = orte_gpr_replica_process_callbacks();
|
rc = orte_gpr_replica_process_callbacks();
|
||||||
|
} else {
|
||||||
|
ORTE_ERROR_LOG(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
|
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user