Fix a race condition on GC timing logger data.
The GC timing logger data is thread local to the GC thread and
shouldn't be used by a mutator. The original intention was to have a
systrace scope.
This should fix the 004-JniTest failures.
Bug: 30980189
Bug: 29517059
Bug: 12687968
Test: test-art-host
Change-Id: Ibc8cfbfdd64d85ff65bf220d3022fc8fdf1064f2
diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc
index 9e454ca..4d16b6e 100644
--- a/runtime/gc/heap.cc
+++ b/runtime/gc/heap.cc
@@ -880,12 +880,12 @@
bool has_waited = false;
uint64_t wait_start = NanoTime();
if (thread_flip_running_) {
- TimingLogger::ScopedTiming split("IncrementDisableThreadFlip",
- GetCurrentGcIteration()->GetTimings());
+ ATRACE_BEGIN("IncrementDisableThreadFlip");
while (thread_flip_running_) {
has_waited = true;
thread_flip_cond_->Wait(self);
}
+ ATRACE_END();
}
++disable_thread_flip_count_;
if (has_waited) {