Index: src/ports/SkBarriers_tsan.h |
diff --git a/src/ports/SkBarriers_tsan.h b/src/ports/SkBarriers_tsan.h |
index 6f273907abae1857699b0ef2e4bbe4edbff9c512..d72dbfd390efcc38f83e8b8551fc4bae4fb07ef0 100644 |
--- a/src/ports/SkBarriers_tsan.h |
+++ b/src/ports/SkBarriers_tsan.h |
@@ -17,6 +17,12 @@ T sk_acquire_load(T* ptr) { |
} |
template <typename T> |
+T sk_consume_load(T* ptr) { |
+ SkASSERT(__atomic_always_lock_free(sizeof(T), ptr)); |
+ return __atomic_load_n(ptr, __ATOMIC_CONSUME); |
+} |
+ |
+template <typename T> |
void sk_release_store(T* ptr, T val) { |
SkASSERT(__atomic_always_lock_free(sizeof(T), ptr)); |
return __atomic_store_n(ptr, val, __ATOMIC_RELEASE); |