Few minor memory leak cleanups
This commit was SVN r7156.
Этот коммит содержится в:
родитель
b65dc08ab1
Коммит
4bd25e0292
@ -300,13 +300,48 @@ int orte_gpr_proxy_module_init(void)
|
||||
*/
|
||||
int orte_gpr_proxy_finalize(void)
|
||||
{
|
||||
|
||||
size_t i;
|
||||
orte_gpr_subscription_id_t j;
|
||||
orte_gpr_trigger_id_t k;
|
||||
orte_gpr_proxy_subscriber_t **lsubs;
|
||||
orte_gpr_proxy_trigger_t **ltrigs;
|
||||
|
||||
if (orte_gpr_proxy_globals.debug) {
|
||||
opal_output(0, "[%lu,%lu,%lu] gpr_proxy_finalize called",
|
||||
ORTE_NAME_ARGS(orte_process_info.my_name));
|
||||
}
|
||||
|
||||
if (initialized) {
|
||||
/* destruct the mutex and condition variables */
|
||||
OBJ_DESTRUCT(&orte_gpr_proxy_globals.mutex);
|
||||
OBJ_DESTRUCT(&orte_gpr_proxy_globals.wait_for_compound_mutex);
|
||||
OBJ_DESTRUCT(&orte_gpr_proxy_globals.compound_cmd_condition);
|
||||
|
||||
/* clear the local subscriptions and triggers */
|
||||
if (NULL != orte_gpr_proxy_globals.subscriptions) {
|
||||
lsubs = (orte_gpr_proxy_subscriber_t**)(orte_gpr_proxy_globals.subscriptions)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_proxy_globals.num_subs &&
|
||||
i < (orte_gpr_proxy_globals.subscriptions)->size; i++) {
|
||||
if (NULL != lsubs[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(lsubs[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_proxy_globals.subscriptions);
|
||||
}
|
||||
|
||||
ltrigs = (orte_gpr_proxy_trigger_t**)(orte_gpr_proxy_globals.triggers)->addr;
|
||||
if (NULL != orte_gpr_proxy_globals.triggers) {
|
||||
for (i=0, k=0; k < orte_gpr_proxy_globals.num_trigs &&
|
||||
i < (orte_gpr_proxy_globals.triggers)->size; i++) {
|
||||
if (NULL != ltrigs[i]) {
|
||||
k++;
|
||||
OBJ_RELEASE(ltrigs[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_proxy_globals.triggers);
|
||||
}
|
||||
|
||||
initialized = false;
|
||||
}
|
||||
|
||||
|
@ -310,7 +310,9 @@ int orte_gpr_replica_module_init(void)
|
||||
*/
|
||||
int orte_gpr_replica_finalize(void)
|
||||
{
|
||||
size_t i, j;
|
||||
size_t i;
|
||||
orte_gpr_subscription_id_t j;
|
||||
orte_gpr_trigger_id_t k;
|
||||
orte_gpr_replica_segment_t** seg;
|
||||
orte_gpr_replica_trigger_t** trig;
|
||||
orte_gpr_replica_subscription_t** subs;
|
||||
@ -322,6 +324,9 @@ int orte_gpr_replica_finalize(void)
|
||||
opal_output(0, "finalizing gpr replica");
|
||||
}
|
||||
|
||||
/* destruct the thread lock */
|
||||
OBJ_DESTRUCT(&orte_gpr_replica_globals.mutex);
|
||||
|
||||
if (NULL != orte_gpr_replica.segments) {
|
||||
seg = (orte_gpr_replica_segment_t**)(orte_gpr_replica.segments)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_replica.num_segs &&
|
||||
@ -365,20 +370,20 @@ int orte_gpr_replica_finalize(void)
|
||||
|
||||
|
||||
/* clear the local subscriptions and triggers */
|
||||
lsubs = (orte_gpr_replica_local_subscriber_t**)(orte_gpr_replica_globals.local_subscriptions)->addr;
|
||||
if (NULL != orte_gpr_replica_globals.local_subscriptions) {
|
||||
for (i=0, j=0; j < orte_gpr_replica_globals.num_local_subs &&
|
||||
lsubs = (orte_gpr_replica_local_subscriber_t**)(orte_gpr_replica_globals.local_subscriptions)->addr;
|
||||
for (i=0, k=0; k < orte_gpr_replica_globals.num_local_subs &&
|
||||
i < (orte_gpr_replica_globals.local_subscriptions)->size; i++) {
|
||||
if (NULL != lsubs[i]) {
|
||||
j++;
|
||||
k++;
|
||||
OBJ_RELEASE(lsubs[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica_globals.local_subscriptions);
|
||||
}
|
||||
|
||||
ltrigs = (orte_gpr_replica_local_trigger_t**)(orte_gpr_replica_globals.local_triggers)->addr;
|
||||
if (NULL != orte_gpr_replica_globals.local_triggers) {
|
||||
ltrigs = (orte_gpr_replica_local_trigger_t**)(orte_gpr_replica_globals.local_triggers)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_replica_globals.num_local_trigs &&
|
||||
i < (orte_gpr_replica_globals.local_triggers)->size; i++) {
|
||||
if (NULL != ltrigs[i]) {
|
||||
|
@ -629,6 +629,7 @@ cleanup:
|
||||
OBJ_RELEASE(item);
|
||||
}
|
||||
OBJ_DESTRUCT(&nodes);
|
||||
free(jobid_string); /* done with this variable */
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user