From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx> When traceeval_iterator_get() is used, it must be accompanied with a traceeval_iterator_put(). Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx> --- samples/task-eval.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/samples/task-eval.c b/samples/task-eval.c index 420d87f498cc..25032293c9a3 100644 --- a/samples/task-eval.c +++ b/samples/task-eval.c @@ -828,6 +828,8 @@ static void display_cpus(struct traceeval *teval) if (last_cpu < 0) die("No result for CPUs\n"); + + traceeval_iterator_put(iter); } static void print_stats(int idx, struct traceeval_stat *stat) @@ -920,6 +922,8 @@ static void display_threads(struct traceeval *teval) display_state_times(state, stat); } + traceeval_iterator_put(iter); + if (last_tid < 0) die("No result for threads\n"); } @@ -982,12 +986,13 @@ static void display_processes(struct traceeval *teval) if (pdata) display_process(pdata); } + traceeval_iterator_put(iter); } static void display(struct task_data *tdata) { struct traceeval *teval = tdata->teval_cpus; - struct traceeval_iterator *iter = traceeval_iterator_get(teval); + struct traceeval_iterator *iter; const struct traceeval_data *keys; struct traceeval_stat *stat; unsigned long long total_time = 0; @@ -997,6 +1002,8 @@ static void display(struct task_data *tdata) return display_processes(tdata->teval_tasks); } + iter = traceeval_iterator_get(teval); + printf("Total:\n"); if (!iter) @@ -1021,6 +1028,8 @@ static void display(struct task_data *tdata) } } + traceeval_iterator_put(iter); + printf(" Total run time (us):"); print_microseconds_nl(16, total_time); printf(" Total idle time (us):"); -- 2.42.0