| OLD | NEW |
| 1 /* |
| 2 * Copyright 2015 Google Inc. |
| 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. |
| 6 */ |
| 7 |
| 1 #ifndef SkAtomics_atomic_DEFINED | 8 #ifndef SkAtomics_atomic_DEFINED |
| 2 #define SkAtomics_atomic_DEFINED | 9 #define SkAtomics_atomic_DEFINED |
| 3 | 10 |
| 4 template <typename T> | 11 template <typename T> |
| 5 T sk_atomic_load(const T* ptr, sk_memory_order mo) { | 12 T sk_atomic_load(const T* ptr, sk_memory_order mo) { |
| 6 SkASSERT(mo == sk_memory_order_relaxed || | 13 SkASSERT(mo == sk_memory_order_relaxed || |
| 7 mo == sk_memory_order_seq_cst || | 14 mo == sk_memory_order_seq_cst || |
| 8 mo == sk_memory_order_acquire || | 15 mo == sk_memory_order_acquire || |
| 9 mo == sk_memory_order_consume); | 16 mo == sk_memory_order_consume); |
| 10 return __atomic_load_n(ptr, mo); | 17 return __atomic_load_n(ptr, mo); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 sk_memory_order failure) { | 37 sk_memory_order failure) { |
| 31 // All values of success are valid. | 38 // All values of success are valid. |
| 32 SkASSERT(failure == sk_memory_order_relaxed || | 39 SkASSERT(failure == sk_memory_order_relaxed || |
| 33 failure == sk_memory_order_seq_cst || | 40 failure == sk_memory_order_seq_cst || |
| 34 failure == sk_memory_order_acquire || | 41 failure == sk_memory_order_acquire || |
| 35 failure == sk_memory_order_consume); | 42 failure == sk_memory_order_consume); |
| 36 SkASSERT(failure <= success); | 43 SkASSERT(failure <= success); |
| 37 return __atomic_compare_exchange_n(ptr, expected, desired, false/*weak?*/, s
uccess, failure); | 44 return __atomic_compare_exchange_n(ptr, expected, desired, false/*weak?*/, s
uccess, failure); |
| 38 } | 45 } |
| 39 | 46 |
| 47 template <typename T> |
| 48 T sk_atomic_exchange(T* ptr, T val, sk_memory_order mo) { |
| 49 // All values of mo are valid. |
| 50 return __atomic_exchange_n(ptr, val, mo); |
| 51 } |
| 52 |
| 40 #endif//SkAtomics_atomic_DEFINED | 53 #endif//SkAtomics_atomic_DEFINED |
| OLD | NEW |