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)
|
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) {
|
if (orte_gpr_proxy_globals.debug) {
|
||||||
opal_output(0, "[%lu,%lu,%lu] gpr_proxy_finalize called",
|
opal_output(0, "[%lu,%lu,%lu] gpr_proxy_finalize called",
|
||||||
ORTE_NAME_ARGS(orte_process_info.my_name));
|
ORTE_NAME_ARGS(orte_process_info.my_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (initialized) {
|
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;
|
initialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -310,7 +310,9 @@ int orte_gpr_replica_module_init(void)
|
|||||||
*/
|
*/
|
||||||
int orte_gpr_replica_finalize(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_segment_t** seg;
|
||||||
orte_gpr_replica_trigger_t** trig;
|
orte_gpr_replica_trigger_t** trig;
|
||||||
orte_gpr_replica_subscription_t** subs;
|
orte_gpr_replica_subscription_t** subs;
|
||||||
@ -322,6 +324,9 @@ int orte_gpr_replica_finalize(void)
|
|||||||
opal_output(0, "finalizing gpr replica");
|
opal_output(0, "finalizing gpr replica");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* destruct the thread lock */
|
||||||
|
OBJ_DESTRUCT(&orte_gpr_replica_globals.mutex);
|
||||||
|
|
||||||
if (NULL != orte_gpr_replica.segments) {
|
if (NULL != orte_gpr_replica.segments) {
|
||||||
seg = (orte_gpr_replica_segment_t**)(orte_gpr_replica.segments)->addr;
|
seg = (orte_gpr_replica_segment_t**)(orte_gpr_replica.segments)->addr;
|
||||||
for (i=0, j=0; j < orte_gpr_replica.num_segs &&
|
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 */
|
/* 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) {
|
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++) {
|
i < (orte_gpr_replica_globals.local_subscriptions)->size; i++) {
|
||||||
if (NULL != lsubs[i]) {
|
if (NULL != lsubs[i]) {
|
||||||
j++;
|
k++;
|
||||||
OBJ_RELEASE(lsubs[i]);
|
OBJ_RELEASE(lsubs[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OBJ_RELEASE(orte_gpr_replica_globals.local_subscriptions);
|
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) {
|
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 &&
|
for (i=0, j=0; j < orte_gpr_replica_globals.num_local_trigs &&
|
||||||
i < (orte_gpr_replica_globals.local_triggers)->size; i++) {
|
i < (orte_gpr_replica_globals.local_triggers)->size; i++) {
|
||||||
if (NULL != ltrigs[i]) {
|
if (NULL != ltrigs[i]) {
|
||||||
|
@ -629,6 +629,7 @@ cleanup:
|
|||||||
OBJ_RELEASE(item);
|
OBJ_RELEASE(item);
|
||||||
}
|
}
|
||||||
OBJ_DESTRUCT(&nodes);
|
OBJ_DESTRUCT(&nodes);
|
||||||
|
free(jobid_string); /* done with this variable */
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user