| Index: src/core/SkTraceEvent.h
|
| diff --git a/src/core/SkTraceEvent.h b/src/core/SkTraceEvent.h
|
| index 34e3adf0eda329b0be187c4b43025d9d940355ce..2c3c9b41819be2851a4608b9b08d4e9bb42a9ee4 100644
|
| --- a/src/core/SkTraceEvent.h
|
| +++ b/src/core/SkTraceEvent.h
|
| @@ -162,6 +162,7 @@
|
| #define SkTraceEvent_DEFINED
|
|
|
| #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.
|
| @@ -764,10 +765,12 @@
|
| // 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) (*(&var))
|
| -#define TRACE_EVENT_API_ATOMIC_STORE(var, value) (var=value)
|
| +#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)
|
|
|
| // Defines visibility for classes in trace_event.h
|
| #define TRACE_EVENT_API_CLASS_EXPORT SK_API
|
|
|