aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Senozhatsky <sergey.senozhatsky@gmail.com>2011-05-10 16:52:04 +0300
committerArjan van de Ven <arjan@linux.intel.com>2011-05-11 00:04:39 -0400
commitcaeb59dc8de5378da2a9a8f10bd916e8976027a6 (patch)
tree07e3add426313c85070559b8c5f78184c1ed6879
parent01e8ae121d075da591396a261d5e0b4d4bbca5fd (diff)
downloadpowertop-caeb59dc8de5378da2a9a8f10bd916e8976027a6.tar.gz
process/process: Introduce clear_processes() function to free allocated memory
Introduce extern clear_processes() function in order to free allocated for all_processes memory. We can call it from do_process instead of iterating through all_processes. Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
-rw-r--r--process/process.cpp9
-rw-r--r--process/process.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/process/process.cpp b/process/process.cpp
index 549fc87..4172543 100644
--- a/process/process.cpp
+++ b/process/process.cpp
@@ -227,4 +227,11 @@ void all_processes_to_all_power(void)
all_power.push_back(all_processes[i]);
}
-
+void clear_processes(void)
+{
+ std::vector <class process *>::iterator it = all_processes.begin();
+ while (it != all_processes.end()) {
+ delete *it;
+ it = all_processes.erase(it);
+ }
+}
diff --git a/process/process.h b/process/process.h
index 4296f32..0ece99a 100644
--- a/process/process.h
+++ b/process/process.h
@@ -83,6 +83,7 @@ extern void merge_processes(void);
extern class process * find_create_process(char *comm, int pid);
extern void all_processes_to_all_power(void);
+extern void clear_processes(void);
extern void process_update_display(void);
extern void html_process_update_display(void);
extern void html_summary(void);