equal
deleted
inserted
replaced
55 return res; |
55 return res; |
56 } |
56 } |
57 |
57 |
58 template<size_t byte_size> |
58 template<size_t byte_size> |
59 template<typename T> |
59 template<typename T> |
60 inline T Atomic::PlatformCmpxchg<byte_size>::operator()(T exchange_value, |
60 inline T Atomic::PlatformCmpxchg<byte_size>::operator()(T volatile* dest, |
61 T volatile* dest, |
|
62 T compare_value, |
61 T compare_value, |
|
62 T exchange_value, |
63 atomic_memory_order order) const { |
63 atomic_memory_order order) const { |
64 STATIC_ASSERT(byte_size == sizeof(T)); |
64 STATIC_ASSERT(byte_size == sizeof(T)); |
65 if (order == memory_order_relaxed) { |
65 if (order == memory_order_relaxed) { |
66 T value = compare_value; |
66 T value = compare_value; |
67 __atomic_compare_exchange(dest, &value, &exchange_value, /*weak*/false, |
67 __atomic_compare_exchange(dest, &value, &exchange_value, /*weak*/false, |