perf stat: Move target check to loop control statement
authorAlexey Budankov <alexey.budankov@linux.intel.com>
Fri, 17 Jul 2020 07:02:42 +0000 (10:02 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 22 Jul 2020 12:42:29 +0000 (09:42 -0300)
Check for target existence in loop control statement jointly external
asynchronous 'done' signal.

Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/79037528-578c-af64-f06c-a644b7f5ba6a@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-stat.c

index 80aea49..87eebf3 100644 (file)
@@ -815,10 +815,8 @@ try_again_reset:
                        psignal(WTERMSIG(status), argv[0]);
        } else {
                enable_counters();
-               while (!done) {
+               while (!done && is_target_alive(&target, evsel_list->core.threads)) {
                        nanosleep(&ts, NULL);
-                       if (!is_target_alive(&target, evsel_list->core.threads))
-                               break;
                        if (timeout || handle_interval(interval, &times))
                                break;
                }