Chromium Code Reviews| 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) |
|
Alexander Potapenko
2015/03/11 09:09:45
Please mind the line length (not sure what is the
mtklein
2015/03/11 15:31:21
Yep. We go to 100. Sadly TRACE_EVENT_API_ATOMIC_
|
| +#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 |