瀏覽代碼

Merge pull request #1044 from mark-whiting/master

Adding missing generic gcc 64-bit atomicops.
Feng Xiao 9 年之前
父節點
當前提交
c59473d53e
共有 1 個文件被更改,包括 18 次插入0 次删除
  1. 18 0
      src/google/protobuf/stubs/atomicops_internals_generic_gcc.h

+ 18 - 0
src/google/protobuf/stubs/atomicops_internals_generic_gcc.h

@@ -128,6 +128,24 @@ inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
   return old_value;
   return old_value;
 }
 }
 
 
+inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
+                                          Atomic64 increment) {
+  return __atomic_add_fetch(ptr, increment, __ATOMIC_RELAXED);
+}
+
+inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
+  __atomic_store_n(ptr, value, __ATOMIC_RELAXED);
+}
+
+inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
+                                         Atomic64 new_value) {
+  return __atomic_exchange_n(ptr, new_value, __ATOMIC_RELAXED);
+}
+
+inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
+  return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+}
+
 #endif // defined(__LP64__)
 #endif // defined(__LP64__)
 
 
 }  // namespace internal
 }  // namespace internal