Index: compiler-rt/trunk/lib/tsan/rtl/tsan_interface.h =================================================================== --- compiler-rt/trunk/lib/tsan/rtl/tsan_interface.h +++ compiler-rt/trunk/lib/tsan/rtl/tsan_interface.h @@ -73,6 +73,9 @@ SANITIZER_INTERFACE_ATTRIBUTE void __tsan_func_entry(void *call_pc); SANITIZER_INTERFACE_ATTRIBUTE void __tsan_func_exit(); +SANITIZER_INTERFACE_ATTRIBUTE void __tsan_ignore_thread_begin(); +SANITIZER_INTERFACE_ATTRIBUTE void __tsan_ignore_thread_end(); + SANITIZER_INTERFACE_ATTRIBUTE void __tsan_read_range(void *addr, unsigned long size); // NOLINT SANITIZER_INTERFACE_ATTRIBUTE Index: compiler-rt/trunk/lib/tsan/rtl/tsan_interface_inl.h =================================================================== --- compiler-rt/trunk/lib/tsan/rtl/tsan_interface_inl.h +++ compiler-rt/trunk/lib/tsan/rtl/tsan_interface_inl.h @@ -108,6 +108,14 @@ FuncExit(cur_thread()); } +void __tsan_ignore_thread_begin() { + ThreadIgnoreBegin(cur_thread(), CALLERPC); +} + +void __tsan_ignore_thread_end() { + ThreadIgnoreEnd(cur_thread(), CALLERPC); +} + void __tsan_read_range(void *addr, uptr size) { MemoryAccessRange(cur_thread(), CALLERPC, (uptr)addr, size, false); }