forked from lei.chen/myxce
fix memory leak
This commit is contained in:
parent
cf1dbdc07a
commit
e001d4955c
3 changed files with 48 additions and 68 deletions
|
|
@ -250,12 +250,28 @@ void job_obj_killer(job_t* job)
|
|||
}
|
||||
|
||||
obj = TO_MYOBJ(job);
|
||||
DEREF_OBJ(job->job.submit->queue);
|
||||
DEREF_OBJ(job->job.submit->user);
|
||||
DEREF_OBJ(job->job.submit->job_name);
|
||||
DEREF_OBJ(job->job.submit->project_name);
|
||||
DEREF_OBJ(job->job.submit->job_description);
|
||||
DEREF_OBJ(job->job.submit->resreq);
|
||||
if (job->job.submit != NULL) {
|
||||
DEREF_OBJ(job->job.submit->queue);
|
||||
DEREF_OBJ(job->job.submit->user);
|
||||
DEREF_OBJ(job->job.submit->job_name);
|
||||
DEREF_OBJ(job->job.submit->project_name);
|
||||
DEREF_OBJ(job->job.submit->job_description);
|
||||
DEREF_OBJ(job->job.submit->resreq);
|
||||
|
||||
if (job->job.submit->start_info != NULL) {
|
||||
DEREF_OBJ(job->job.submit->start_info->cmdline);
|
||||
DEREF_OBJ(job->job.submit->start_info->exechome);
|
||||
DEREF_OBJ(job->job.submit->start_info->execcwd);
|
||||
DEREF_OBJ(job->job.submit->start_info->execuser);
|
||||
DEREF_OBJ(job->job.submit->start_info->exdata);
|
||||
DEREF_OBJ(job->job.submit->start_info->launch_type);
|
||||
DEREF_OBJ(job->job.submit->start_info->job_pre_exec);
|
||||
DEREF_OBJ(job->job.submit->start_info->job_post_exec);
|
||||
FREEUP(job->job.submit->start_info);
|
||||
}
|
||||
|
||||
FREEUP(job->job.submit);
|
||||
}
|
||||
|
||||
if (job->job.pidinfo != NULL) {
|
||||
FREEUP(job->job.pidinfo->pids);
|
||||
|
|
@ -268,22 +284,7 @@ void job_obj_killer(job_t* job)
|
|||
}
|
||||
|
||||
if (job->job.allocs != NULL) {
|
||||
for (int i = 0; i < job->job.allocs->nhosts; i++) {
|
||||
FREEUP(job->job.allocs->allocs[i]->host);
|
||||
for (int k = 0; k < job->job.allocs->allocs[i]->nallocs; k++) {
|
||||
xce_alloc_t* alloc
|
||||
= (xce_alloc_t*)job->job.allocs->allocs[i]->allocs[k];
|
||||
if (alloc == NULL) {
|
||||
continue;
|
||||
}
|
||||
FREEUP(alloc->resname);
|
||||
FREEUP(alloc->reserve);
|
||||
free(alloc);
|
||||
}
|
||||
FREEUP(job->job.allocs->allocs[i]);
|
||||
}
|
||||
FREEUP(job->job.allocs->allocs);
|
||||
FREEUP(job->job.allocs);
|
||||
free_JobAlloc_ptr(&(job->job.allocs));
|
||||
}
|
||||
|
||||
if (job->job.run_usage != NULL) {
|
||||
|
|
@ -295,18 +296,6 @@ void job_obj_killer(job_t* job)
|
|||
FREEUP(job->job.run_usage);
|
||||
}
|
||||
|
||||
if (job->job.submit->start_info != NULL) {
|
||||
DEREF_OBJ(job->job.submit->start_info->cmdline);
|
||||
DEREF_OBJ(job->job.submit->start_info->exechome);
|
||||
DEREF_OBJ(job->job.submit->start_info->execcwd);
|
||||
DEREF_OBJ(job->job.submit->start_info->execuser);
|
||||
DEREF_OBJ(job->job.submit->start_info->exdata);
|
||||
DEREF_OBJ(job->job.submit->start_info->launch_type);
|
||||
DEREF_OBJ(job->job.submit->start_info->job_pre_exec);
|
||||
DEREF_OBJ(job->job.submit->start_info->job_post_exec);
|
||||
FREEUP(job->job.submit->start_info);
|
||||
}
|
||||
|
||||
FREEUP(job->job.exit_info);
|
||||
|
||||
memset(obj, 0x0, sizeof(*obj));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue