perf stat: Remove use of die/exit and handle errors
authorDavid Ahern <dsahern@gmail.com>
Sun, 26 Aug 2012 18:24:44 +0000 (12:24 -0600)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 5 Sep 2012 20:20:24 +0000 (17:20 -0300)
Allows perf to clean up properly on program termination.

Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1346005487-62961-5-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-stat.c

index d53d8ab099b17f43e77a241442b2bf211ecd4d10..02f49eba677f4c351a3528cba9afce6f3a3eb598 100644 (file)
@@ -428,7 +428,7 @@ static int run_perf_stat(int argc __used, const char **argv)
 
        if (forks && (pipe(child_ready_pipe) < 0 || pipe(go_pipe) < 0)) {
                perror("failed to create pipes");
-               exit(1);
+               return -1;
        }
 
        if (forks) {
@@ -510,7 +510,8 @@ static int run_perf_stat(int argc __used, const char **argv)
                        }
                        if (child_pid != -1)
                                kill(child_pid, SIGTERM);
-                       die("Not all events could be opened.\n");
+
+                       pr_err("Not all events could be opened.\n");
                        return -1;
                }
                counter->supported = true;
@@ -1189,7 +1190,7 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
                output = fopen(output_name, mode);
                if (!output) {
                        perror("failed to create output file");
-                       exit(-1);
+                       return -1;
                }
                clock_gettime(CLOCK_REALTIME, &tm);
                fprintf(output, "# started on %s\n", ctime(&tm.tv_sec));