1
1

There is a cleanup label, so I expect to use it in all cases.

This commit was SVN r14329.
Этот коммит содержится в:
George Bosilca 2007-04-12 05:05:36 +00:00
родитель 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 */
for (j=0; j < val->cnt; j++) {
if (NULL == (val->keyvals[j])->key) {
ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM);
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
return ORTE_ERR_BAD_PARAM;
rc = ORTE_ERR_BAD_PARAM;
goto CLEANUP;
}
}
/* find the segment */
if (ORTE_SUCCESS != (rc = orte_gpr_replica_find_seg(&seg, true, val->segment))) {
ORTE_ERROR_LOG(rc);
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
return rc;
goto CLEANUP;
}
/* convert tokens to array of itags */
if (ORTE_SUCCESS != (rc = orte_gpr_replica_get_itag_list(&itags, seg,
val->tokens, &(val->num_tokens)))) {
ORTE_ERROR_LOG(rc);
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
return rc;
goto CLEANUP;
}
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())) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
if (NULL != itags) {
free(itags);
}
itags = NULL;
}
}
CLEANUP:
CLEANUP: /* or not ... */
/* release list of itags */
if (NULL != itags) {
free(itags);
@ -105,12 +99,13 @@ CLEANUP:
if (ORTE_SUCCESS == rc) {
rc = orte_gpr_replica_process_callbacks();
} else {
ORTE_ERROR_LOG(rc);
}
OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex);
return rc;
}