31 typedef std::atomic<Long> AtomicLong;
32 typedef std::atomic<int64_t> AtomicInt64;
35 template<
typename Type>
36 static inline Type AtomicIncrement(std::atomic<Type> &Val)
42 template<
typename Type>
43 static inline Type AtomicDecrement(std::atomic<Type> &Val)
52 template<
typename Type>
53 static inline Type AtomicCompareExchange( std::atomic<Type> &Destination, Type Exchange, Type Comparand)
55 Destination.compare_exchange_strong(Comparand, Exchange);
59 template<
typename Type>
60 static inline Type AtomicAdd( std::atomic<Type> &Destination, Type Val)
62 return std::atomic_fetch_add(&Destination, Val);