summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authoramistry <amistry@chromium.org>2015-07-04 07:43:15 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-04 14:43:59 +0000
commitb246bac74f6a3b9df58b6ecccb4b56987b55dbd1 (patch)
treea00df0daee30c53553f04af2246ea1de5c3a7d74 /base
parent9576b6373498f65446a0665040ae24df44a0819f (diff)
downloadchromium_src-b246bac74f6a3b9df58b6ecccb4b56987b55dbd1.zip
chromium_src-b246bac74f6a3b9df58b6ecccb4b56987b55dbd1.tar.gz
chromium_src-b246bac74f6a3b9df58b6ecccb4b56987b55dbd1.tar.bz2
Fix a tsan race triggerred by unprotected reads of |TraceLog::logged_events_|.
Review URL: https://codereview.chromium.org/1217383004 Cr-Commit-Position: refs/heads/master@{#337343}
Diffstat (limited to 'base')
-rw-r--r--base/trace_event/trace_event_impl.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/base/trace_event/trace_event_impl.cc b/base/trace_event/trace_event_impl.cc
index 1fc2256..fb39519 100644
--- a/base/trace_event/trace_event_impl.cc
+++ b/base/trace_event/trace_event_impl.cc
@@ -1335,8 +1335,11 @@ void TraceLog::InitializeThreadLocalEventBufferIfSupported() {
bool TraceLog::OnMemoryDump(ProcessMemoryDump* pmd) {
TraceEventMemoryOverhead overhead;
overhead.Add("TraceLog", sizeof(*this));
- if (logged_events_)
- logged_events_->EstimateTraceMemoryOverhead(&overhead);
+ {
+ AutoLock lock(lock_);
+ if (logged_events_)
+ logged_events_->EstimateTraceMemoryOverhead(&overhead);
+ }
overhead.AddSelf();
overhead.DumpInto("tracing/main_trace_log", pmd);
return true;