Create rtc::AtomicInt POD struct.
Prevents accidental non-atomic reads, increments and stores since
"volatile int" doesn't enforce atomic usage.
BUG=
R=kwiberg@webrtc.org, tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1420043008
Cr-Commit-Position: refs/heads/master@{#10657}
diff --git a/webrtc/system_wrappers/source/trace_impl.cc b/webrtc/system_wrappers/source/trace_impl.cc
index ffe79b9..ea34339 100644
--- a/webrtc/system_wrappers/source/trace_impl.cc
+++ b/webrtc/system_wrappers/source/trace_impl.cc
@@ -33,7 +33,7 @@
const int Trace::kBoilerplateLength = 71;
const int Trace::kTimestampPosition = 13;
const int Trace::kTimestampLength = 12;
-volatile int Trace::level_filter_ = kTraceDefault;
+rtc::AtomicInt Trace::level_filter_(kTraceDefault);
// Construct On First Use idiom. Avoids "static initialization order fiasco".
TraceImpl* TraceImpl::StaticInstance(CountOperation count_operation,
@@ -547,12 +547,12 @@
// static
void Trace::set_level_filter(int filter) {
- rtc::AtomicOps::ReleaseStore(&level_filter_, filter);
+ rtc::AtomicInt::ReleaseStore(&level_filter_, filter);
}
// static
int Trace::level_filter() {
- return rtc::AtomicOps::AcquireLoad(&level_filter_);
+ return rtc::AtomicInt::AcquireLoad(&level_filter_);
}
// static