diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2014-04-11 15:36:54 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2014-04-11 15:36:54 +0000 |
commit | fa1d56c31f09ac1bb1d69195c3f35dd06cada2d5 (patch) | |
tree | fd5c370e2198f8277a6053ea6dfa06670efccc6a | |
parent | 4b43e91abc38e76a3ef53fa0bd8045583b27a439 (diff) | |
download | bcm5719-llvm-fa1d56c31f09ac1bb1d69195c3f35dd06cada2d5.tar.gz bcm5719-llvm-fa1d56c31f09ac1bb1d69195c3f35dd06cada2d5.zip |
tsan: ignore interceptors from symbolizer
ocassionally we see races coming from symbolizer interceptors (e.g. memcmp)
reproducible only only on large complex programs
llvm-svn: 206034
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_symbolize.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc b/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc index de8cf4ed48e..943aeb0100d 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc @@ -26,12 +26,14 @@ void EnterSymbolizer() { ThreadState *thr = cur_thread(); CHECK(!thr->in_symbolizer); thr->in_symbolizer = true; + thr->ignore_interceptors++; } void ExitSymbolizer() { ThreadState *thr = cur_thread(); CHECK(thr->in_symbolizer); thr->in_symbolizer = false; + thr->ignore_interceptors--; } ReportStack *NewReportStackEntry(uptr addr) { |