tsan: flush dead thread info earlier (when another thread is finished rather than new thread is created)
llvm-svn: 177394
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc b/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
index bcb5498..476b670 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
@@ -73,11 +73,10 @@
StatInc(args->thr, StatThreadMaxTid);
}
-void ThreadContext::OnReset(void *arg) {
- OnCreatedArgs *args = static_cast<OnCreatedArgs *>(arg);
- StatInc(args->thr, StatThreadReuse);
+void ThreadContext::OnReset() {
sync.Reset();
- DestroyAndFree(dead_info);
+ if (dead_info)
+ DestroyAndFree(dead_info);
}
struct OnStartedArgs {