From fc2cc1715be5aba735db04cb95174b0e196f4566 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Mon, 4 Aug 2014 13:44:58 -0700 Subject: [PATCH] Add function that purges step list No checking or other operations are performed on this list, just a purge. --- src/slurmctld/slurmctld.h | 6 ++++++ src/slurmctld/step_mgr.c | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/slurmctld/slurmctld.h b/src/slurmctld/slurmctld.h index 6f6dac0fb1c..131be4a18c7 100644 --- a/src/slurmctld/slurmctld.h +++ b/src/slurmctld/slurmctld.h @@ -1928,6 +1928,12 @@ extern slurm_step_layout_t *step_layout_create(struct step_record *step_ptr, uint16_t task_dist, uint16_t plane_size); +/* + * step_list_purge - Simple purge of a job's step list records. + * IN job_ptr - pointer to job table entry to have step records removed + */ +extern void step_list_purge(struct job_record *job_ptr); + /* start_power_mgr - Start power management thread as needed. The thread * terminates automatically at slurmctld shutdown time. * IN thread_id - pointer to thread ID of the started pthread. diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c index d8a5947f8e8..35278987823 100644 --- a/src/slurmctld/step_mgr.c +++ b/src/slurmctld/step_mgr.c @@ -282,7 +282,28 @@ extern void delete_step_records (struct job_record *job_ptr) _free_step_rec(step_ptr); } list_iterator_destroy(step_iterator); +} + +/* + * step_list_purge - Simple purge of a job's step list records. + * IN job_ptr - pointer to job table entry to have step records removed + */ +extern void step_list_purge(struct job_record *job_ptr) +{ + ListIterator step_iterator; + struct step_record *step_ptr; + + xassert(job_ptr); + if (job_ptr->step_list == NULL) + return; + step_iterator = list_iterator_create(job_ptr->step_list); + while ((step_ptr = (struct step_record *) list_next (step_iterator))) { + list_remove (step_iterator); + _free_step_rec(step_ptr); + } + list_iterator_destroy(step_iterator); + list_destroy(job_ptr->step_list); } /* _free_step_rec - delete a step record's data structures */ -- GitLab