diff options
author | Feng Xiao <xfxyjwf@gmail.com> | 2017-11-30 10:44:11 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-30 10:44:11 -0800 |
commit | da89eb25efc9f8a9ff14c5e6460bc8e120c167ae (patch) | |
tree | bd4197540d2f267a747546c6c6f2e94a0eb83a97 /src/google | |
parent | 6d6099553b4e9a0cc6bd5a6a92359862a1728db8 (diff) | |
parent | 642e1ac635f2563b4a14c255374f02645ae85dac (diff) | |
download | protobuf-da89eb25efc9f8a9ff14c5e6460bc8e120c167ae.tar.gz protobuf-da89eb25efc9f8a9ff14c5e6460bc8e120c167ae.tar.bz2 protobuf-da89eb25efc9f8a9ff14c5e6460bc8e120c167ae.zip |
Merge pull request #3955 from linux-on-ibm-z/master
Adding Release_CompareAndSwap 64-bit variant
Diffstat (limited to 'src/google')
-rw-r--r-- | src/google/protobuf/stubs/atomicops_internals_generic_gcc.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h b/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h index 0b0b06ce..075c406a 100644 --- a/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h +++ b/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h @@ -146,6 +146,14 @@ inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) { return __atomic_load_n(ptr, __ATOMIC_RELAXED); } +inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr, + Atomic64 old_value, + Atomic64 new_value) { + __atomic_compare_exchange_n(ptr, &old_value, new_value, false, + __ATOMIC_RELEASE, __ATOMIC_ACQUIRE); + return old_value; +} + #endif // defined(__LP64__) } // namespace internal |