Implement store as an explicit atomic operation.
Using explicit atomic operations permits TSan to understand them and
prevents false positives.
Downgrading the atomic Load to acquire semantics. This reduces the
number of memory barriers inserted from two down to one at most.
Also renaming Load/Store to AcquireLoad/ReleaseStore.
BUG=chromium:512382
R=dvyukov@chromium.org, glider@chromium.org
TBR=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1246073002
Cr-Commit-Position: refs/heads/master@{#9613}
diff --git a/webrtc/system_wrappers/source/trace_impl.cc b/webrtc/system_wrappers/source/trace_impl.cc
index e6032d5..25da5a0 100644
--- a/webrtc/system_wrappers/source/trace_impl.cc
+++ b/webrtc/system_wrappers/source/trace_impl.cc
@@ -542,12 +542,12 @@
// static
void Trace::set_level_filter(int filter) {
- rtc::AtomicOps::Store(&level_filter_, filter);
+ rtc::AtomicOps::ReleaseStore(&level_filter_, filter);
}
// static
int Trace::level_filter() {
- return rtc::AtomicOps::Load(&level_filter_);
+ return rtc::AtomicOps::AcquireLoad(&level_filter_);
}
// static