diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index d1e449534b331d7a75800c71579e4cc5250a7b90..d51e62db96a7ce9472b668aea3599e673d6acf6e 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -1263,7 +1263,9 @@ static int __perf_session__process_pipe_events(struct perf_session *self, if (!session_done()) goto more; done: - err = 0; + /* do the final flush for ordered samples */ + self->ordered_samples.next_flush = ULLONG_MAX; + err = flush_sample_queue(self, tool); out_err: free(buf); perf_session__warn_about_errors(self, tool); @@ -1392,13 +1394,13 @@ int __perf_session__process_events(struct perf_session *session, "Processing events..."); } - err = 0; if (session_done()) - goto out_err; + goto out; if (file_pos < file_size) goto more; +out: /* do the final flush for ordered samples */ session->ordered_samples.next_flush = ULLONG_MAX; err = flush_sample_queue(session, tool);