diff options
author | Andreas Gampe <agampe@google.com> | 2014-11-06 01:00:46 -0800 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2014-11-18 17:26:06 -0800 |
commit | 4303ba97313458491e038d78efa041d41cf7bb43 (patch) | |
tree | 5a5873651db918416c9ff63f4bb06b6eb7f4c71a /runtime/trace.cc | |
parent | a971100be7870544360fa8a46311ef7f5adb6902 (diff) | |
download | art-4303ba97313458491e038d78efa041d41cf7bb43.zip art-4303ba97313458491e038d78efa041d41cf7bb43.tar.gz art-4303ba97313458491e038d78efa041d41cf7bb43.tar.bz2 |
ART: Track Flush & Close in FdFile
Implement a check that aborts when a file hasn't been explicitly
flushed and closed when it is destructed.
Add WARN_UNUSED to FdFile methods.
Update dex2oat, patchoat, scoped_flock and some gtests to pass with
this.
(cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494)
Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4
Diffstat (limited to 'runtime/trace.cc')
-rw-r--r-- | runtime/trace.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/trace.cc b/runtime/trace.cc index 29c01e4..2cc50b3 100644 --- a/runtime/trace.cc +++ b/runtime/trace.cc @@ -431,6 +431,15 @@ void Trace::Stop() { instrumentation::Instrumentation::kMethodExited | instrumentation::Instrumentation::kMethodUnwind); } + if (the_trace->trace_file_.get() != nullptr) { + // Do not try to erase, so flush and close explicitly. + if (the_trace->trace_file_->Flush() != 0) { + PLOG(ERROR) << "Could not flush trace file."; + } + if (the_trace->trace_file_->Close() != 0) { + PLOG(ERROR) << "Could not close trace file."; + } + } delete the_trace; } runtime->GetThreadList()->ResumeAll(); |