Add skia_tsan_build to match skia_asan_build and fix one example race.
R=mtklein@google.com
Review URL: https://codereview.chromium.org/24644003
git-svn-id: http://skia.googlecode.com/svn/trunk@11464 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gyp/common_conditions.gypi b/gyp/common_conditions.gypi
index f9feb1c..f8012b9 100644
--- a/gyp/common_conditions.gypi
+++ b/gyp/common_conditions.gypi
@@ -286,6 +286,15 @@
'-fsanitize=address',
],
}],
+ [ 'skia_tsan_build', {
+ 'cflags': [
+ '-fsanitize=thread',
+ '-fno-omit-frame-pointer',
+ ],
+ 'ldflags': [
+ '-fsanitize=thread',
+ ],
+ }],
[ 'skia_clang_build', {
'cflags': [
'-Wstring-conversion',
diff --git a/gyp/common_variables.gypi b/gyp/common_variables.gypi
index 117ec9e..3f7b154 100644
--- a/gyp/common_variables.gypi
+++ b/gyp/common_variables.gypi
@@ -79,6 +79,7 @@
],
'skia_asan_build%': 0,
+ 'skia_tsan_build%': 0,
'skia_scalar%': 'float',
'skia_mesa%': 0,
'skia_nv_path_rendering%': 0,
@@ -118,7 +119,7 @@
}, {
'skia_release_optimization_level%': '<(skia_default_gcc_optimization_level)',
}],
- [ 'skia_asan_build', {
+ [ 'skia_asan_build or skia_tsan_build', {
'skia_clang_build': 1,
}, {
'skia_clang_build%': 0,
@@ -133,6 +134,7 @@
'skia_os%': '<(skia_os)',
'os_posix%': '<(os_posix)',
'skia_asan_build%': '<(skia_asan_build)',
+ 'skia_tsan_build%': '<(skia_tsan_build)',
'skia_scalar%': '<(skia_scalar)',
'skia_mesa%': '<(skia_mesa)',
'skia_nv_path_rendering%': '<(skia_nv_path_rendering)',
diff --git a/tests/skia_test.cpp b/tests/skia_test.cpp
index 7d22ff6..a93b307 100644
--- a/tests/skia_test.cpp
+++ b/tests/skia_test.cpp
@@ -84,9 +84,9 @@
protected:
virtual void onStart(Test* test) {
- const int index = sk_atomic_inc(&fNextIndex);
- sk_atomic_inc(&fPending);
- SkDebugf("[%3d/%3d] (%d) %s\n", index+1, fTotal, fPending, test->getName());
+ const int index = sk_atomic_inc(&fNextIndex)+1;
+ const int pending = sk_atomic_inc(&fPending)+1;
+ SkDebugf("[%3d/%3d] (%d) %s\n", index, fTotal, pending, test->getName());
}
virtual void onReportFailed(const SkString& desc) {
SkDebugf("\tFAILED: %s\n", desc.c_str());