Index: include/core/SkDynamicAnnotations.h |
diff --git a/include/core/SkDynamicAnnotations.h b/include/core/SkDynamicAnnotations.h |
deleted file mode 100644 |
index 86b01814a8f38ba005c0ac6105150c492573a87a..0000000000000000000000000000000000000000 |
--- a/include/core/SkDynamicAnnotations.h |
+++ /dev/null |
@@ -1,59 +0,0 @@ |
-/* |
- * Copyright 2014 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#ifndef SkDynamicAnnotations_DEFINED |
-#define SkDynamicAnnotations_DEFINED |
- |
-// Make sure we see anything set via SkUserConfig.h (e.g. DYNAMIC_ANNOTATIONS_ENABLED). |
-#include "SkTypes.h" |
- |
-// This file contains macros used to send out-of-band signals to dynamic instrumentation systems, |
-// namely thread sanitizer. This is a cut-down version of the full dynamic_annotations library with |
-// only the features used by Skia. |
- |
-#if DYNAMIC_ANNOTATIONS_ENABLED |
- |
-extern "C" { |
-// TSAN provides these hooks. |
-void AnnotateIgnoreReadsBegin(const char* file, int line); |
-void AnnotateIgnoreReadsEnd(const char* file, int line); |
-void AnnotateIgnoreWritesBegin(const char* file, int line); |
-void AnnotateIgnoreWritesEnd(const char* file, int line); |
-} // extern "C" |
- |
-// SK_ANNOTATE_UNPROTECTED_READ can wrap any variable read to tell TSAN to ignore that it appears to |
-// be a racy read. This should be used only when we can make an external guarantee that though this |
-// particular read is racy, it is being used as part of a mechanism which is thread safe. Examples: |
-// - the first check in double-checked locking; |
-// - checking if a ref count is equal to 1. |
-// Note that in both these cases, we must still add terrifyingly subtle memory barriers to provide |
-// that overall thread safety guarantee. Using this macro to shut TSAN up without providing such an |
-// external guarantee is pretty much never correct. |
-template <typename T> |
-inline T SK_ANNOTATE_UNPROTECTED_READ(const volatile T& x) { |
- AnnotateIgnoreReadsBegin(__FILE__, __LINE__); |
- T read = x; |
- AnnotateIgnoreReadsEnd(__FILE__, __LINE__); |
- return read; |
-} |
- |
-// Like SK_ANNOTATE_UNPROTECTED_READ, but for writes. |
-template <typename T> |
-inline void SK_ANNOTATE_UNPROTECTED_WRITE(T* ptr, const T& val) { |
- AnnotateIgnoreWritesBegin(__FILE__, __LINE__); |
- *ptr = val; |
- AnnotateIgnoreWritesEnd(__FILE__, __LINE__); |
-} |
- |
-#else // !DYNAMIC_ANNOTATIONS_ENABLED |
- |
-#define SK_ANNOTATE_UNPROTECTED_READ(x) (x) |
-#define SK_ANNOTATE_UNPROTECTED_WRITE(ptr, val) *(ptr) = (val) |
- |
-#endif |
- |
-#endif//SkDynamicAnnotations_DEFINED |