Index: base/threading/thread_local_storage.cc |
diff --git a/base/threading/thread_local_storage.cc b/base/threading/thread_local_storage.cc |
index 0bb396cfd7966fbe493b43683f4bb59a5561c9ce..701f6a2af9bf5afd1ae12c4b89fc387963ced92d 100644 |
--- a/base/threading/thread_local_storage.cc |
+++ b/base/threading/thread_local_storage.cc |
@@ -192,8 +192,8 @@ void PlatformThreadLocalStorage::OnThreadExit(void* value) { |
} // namespace internal |
ThreadLocalStorage::Slot::Slot(TLSDestructorFunc destructor) { |
- initialized_ = false; |
slot_ = 0; |
+ base::subtle::Release_Store(&initialized_, 0); |
Initialize(destructor); |
} |
@@ -211,7 +211,7 @@ void ThreadLocalStorage::StaticSlot::Initialize(TLSDestructorFunc destructor) { |
// Setup our destructor. |
g_tls_destructors[slot_] = destructor; |
- initialized_ = true; |
+ base::subtle::Release_Store(&initialized_, 1); |
} |
void ThreadLocalStorage::StaticSlot::Free() { |
@@ -221,7 +221,7 @@ void ThreadLocalStorage::StaticSlot::Free() { |
DCHECK_LT(slot_, kThreadLocalStorageSize); |
g_tls_destructors[slot_] = NULL; |
slot_ = 0; |
- initialized_ = false; |
+ base::subtle::Release_Store(&initialized_, 0); |
} |
void* ThreadLocalStorage::StaticSlot::Get() const { |