Index: src/core/SkTraceEvent.h |
diff --git a/src/core/SkTraceEvent.h b/src/core/SkTraceEvent.h |
index 2c3c9b41819be2851a4608b9b08d4e9bb42a9ee4..5d7617b32bbd378eabf5c26b273acf0247b84679 100644 |
--- a/src/core/SkTraceEvent.h |
+++ b/src/core/SkTraceEvent.h |
@@ -161,8 +161,8 @@ |
#ifndef SkTraceEvent_DEFINED |
#define SkTraceEvent_DEFINED |
+#include "SkAtomics.h" |
#include "SkEventTracer.h" |
-#include "SkDynamicAnnotations.h" |
// By default, const char* argument values are assumed to have long-lived scope |
// and will not be copied. Use this macro to force a const char* to be copied. |
@@ -760,17 +760,10 @@ |
#define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ |
SkEventTracer::GetInstance()->updateTraceEventDuration |
-// These operations are atomic in the Chrome tracing implementation |
-// to cater to ARM's weak memory consistency; we're just doing read/ |
-// write here because it's not strictly needed for correctness. |
-// So says Nat. |
-// FIXME |
-// |
-// Skia addition: we mark these as unprotected reads and writes to shut up TSAN. |
- |
#define TRACE_EVENT_API_ATOMIC_WORD intptr_t |
-#define TRACE_EVENT_API_ATOMIC_LOAD(var) SK_ANNOTATE_UNPROTECTED_READ(var) |
-#define TRACE_EVENT_API_ATOMIC_STORE(var, value) SK_ANNOTATE_UNPROTECTED_WRITE(&var, value) |
+#define TRACE_EVENT_API_ATOMIC_LOAD(var) sk_atomic_load(&var, sk_memory_order_relaxed) |
+#define TRACE_EVENT_API_ATOMIC_STORE(var, value) \ |
+ sk_atomic_store(&var, value, sk_memory_order_relaxed) |
// Defines visibility for classes in trace_event.h |
#define TRACE_EVENT_API_CLASS_EXPORT SK_API |