Scope our ANNOTATE_BENIGN_RACE.
This should unstick the DEPS roll. When building with TSAN, Chromium's pulling in the canonical one from dynamic_annotations.h, and we're trying to redefine it. R=robertphillips@google.com, reed@google.com, bsalomon@google.com TBR=reed@google.com BUG= Author: mtklein@google.com Review URL: https://codereview.chromium.org/144063002 git-svn-id: http://skia.googlecode.com/svn/trunk@13129 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
5e93b85884
commit
91506eb0b9
@ -112,7 +112,7 @@ static void sk_once_slow(SkOnceFlag* once, Func f, Arg arg) {
|
|||||||
|
|
||||||
// We nabbed this code from the dynamic_annotations library, and in their honor
|
// We nabbed this code from the dynamic_annotations library, and in their honor
|
||||||
// we check the same define. If you find yourself wanting more than just
|
// we check the same define. If you find yourself wanting more than just
|
||||||
// ANNOTATE_BENIGN_RACE, it might make sense to pull that in as a dependency
|
// SK_ANNOTATE_BENIGN_RACE, it might make sense to pull that in as a dependency
|
||||||
// rather than continue to reproduce it here.
|
// rather than continue to reproduce it here.
|
||||||
|
|
||||||
#if DYNAMIC_ANNOTATIONS_ENABLED
|
#if DYNAMIC_ANNOTATIONS_ENABLED
|
||||||
@ -120,15 +120,15 @@ static void sk_once_slow(SkOnceFlag* once, Func f, Arg arg) {
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
void AnnotateBenignRace(const char* file, int line, const volatile void* mem, const char* desc);
|
void AnnotateBenignRace(const char* file, int line, const volatile void* mem, const char* desc);
|
||||||
}
|
}
|
||||||
#define ANNOTATE_BENIGN_RACE(mem, desc) AnnotateBenignRace(__FILE__, __LINE__, mem, desc)
|
#define SK_ANNOTATE_BENIGN_RACE(mem, desc) AnnotateBenignRace(__FILE__, __LINE__, mem, desc)
|
||||||
#else
|
#else
|
||||||
#define ANNOTATE_BENIGN_RACE(mem, desc)
|
#define SK_ANNOTATE_BENIGN_RACE(mem, desc)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// This is our fast path, called all the time. We do really want it to be inlined.
|
// This is our fast path, called all the time. We do really want it to be inlined.
|
||||||
template <typename Func, typename Arg>
|
template <typename Func, typename Arg>
|
||||||
inline void SkOnce(SkOnceFlag* once, Func f, Arg arg) {
|
inline void SkOnce(SkOnceFlag* once, Func f, Arg arg) {
|
||||||
ANNOTATE_BENIGN_RACE(&(once->done), "Don't worry TSAN, we're sure this is safe.");
|
SK_ANNOTATE_BENIGN_RACE(&(once->done), "Don't worry TSAN, we're sure this is safe.");
|
||||||
if (!once->done) {
|
if (!once->done) {
|
||||||
sk_once_slow(once, f, arg);
|
sk_once_slow(once, f, arg);
|
||||||
}
|
}
|
||||||
@ -145,6 +145,6 @@ inline void SkOnce(SkOnceFlag* once, Func f, Arg arg) {
|
|||||||
acquire_barrier();
|
acquire_barrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef ANNOTATE_BENIGN_RACE
|
#undef SK_ANNOTATE_BENIGN_RACE
|
||||||
|
|
||||||
#endif // SkOnce_DEFINED
|
#endif // SkOnce_DEFINED
|
||||||
|
Loading…
Reference in New Issue
Block a user