summaryrefslogtreecommitdiff
path: root/lib/tsan/rtl/tsan_rtl_thread.cc
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2013-03-19 12:25:48 +0000
committerDmitry Vyukov <dvyukov@google.com>2013-03-19 12:25:48 +0000
commitce85e03620f64ce7e4cd0598f2e93090f52a9e99 (patch)
tree16b43363033c32c949b7b187e5d6cbe23219e1b0 /lib/tsan/rtl/tsan_rtl_thread.cc
parent8e1c769ed84f4d5cf23904dee1abeec6f125f1ac (diff)
tsan: flush dead thread info earlier (when another thread is finished rather than new thread is created)
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177394 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan/rtl/tsan_rtl_thread.cc')
-rw-r--r--lib/tsan/rtl/tsan_rtl_thread.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/tsan/rtl/tsan_rtl_thread.cc b/lib/tsan/rtl/tsan_rtl_thread.cc
index bcb5498cc..476b670b9 100644
--- a/lib/tsan/rtl/tsan_rtl_thread.cc
+++ b/lib/tsan/rtl/tsan_rtl_thread.cc
@@ -73,11 +73,10 @@ void ThreadContext::OnCreated(void *arg) {
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 {