aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxfxyjwf <xfxyjwf@gmail.com>2014-09-19 12:00:58 -0700
committerxfxyjwf <xfxyjwf@gmail.com>2014-09-19 12:00:58 -0700
commit7d50120316b62499d1ec64580acc8ff32fceb147 (patch)
treecd91ef9cbffb3a66254fd32af791020680a34dac
parentdce98a8d4c662b94c4840a58f3c0263bf5c5e4c8 (diff)
parentcc0a047384414991009d95ada9e89b9a92aac531 (diff)
downloadprotobuf-7d50120316b62499d1ec64580acc8ff32fceb147.tar.gz
protobuf-7d50120316b62499d1ec64580acc8ff32fceb147.tar.bz2
protobuf-7d50120316b62499d1ec64580acc8ff32fceb147.zip
Merge pull request #30 from edmonds/branches/fix_generic_atomicops_memory_models
generic atomicops: promote Acquire_Store() and Release_Load() to use SEQ_CST fence
-rw-r--r--src/google/protobuf/stubs/atomicops_internals_generic_gcc.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h b/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
index e30bb444..dd7abf6f 100644
--- a/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
+++ b/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
@@ -83,7 +83,7 @@ inline void MemoryBarrier() {
}
inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
- __atomic_store_n(ptr, value, __ATOMIC_ACQUIRE);
+ __atomic_store_n(ptr, value, __ATOMIC_SEQ_CST);
}
inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
@@ -99,7 +99,7 @@ inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
}
inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
- return __atomic_load_n(ptr, __ATOMIC_RELEASE);
+ return __atomic_load_n(ptr, __ATOMIC_SEQ_CST);
}
#ifdef __LP64__