1
1

Few minor memory leak cleanups

This commit was SVN r7156.
Этот коммит содержится в:
Ralph Castain 2005-09-02 18:50:01 +00:00
родитель b65dc08ab1
Коммит 4bd25e0292
3 изменённых файлов: 47 добавлений и 6 удалений

Просмотреть файл

@ -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;
}