summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/lib/asan/asan_thread_registry.cc2
-rw-r--r--compiler-rt/lib/asan/asan_thread_registry.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/compiler-rt/lib/asan/asan_thread_registry.cc b/compiler-rt/lib/asan/asan_thread_registry.cc
index 198b2f66246..09f90fa24a6 100644
--- a/compiler-rt/lib/asan/asan_thread_registry.cc
+++ b/compiler-rt/lib/asan/asan_thread_registry.cc
@@ -37,6 +37,8 @@ void AsanThreadRegistry::Init() {
main_thread_summary_.set_thread(&main_thread_);
RegisterThread(&main_thread_);
SetCurrent(&main_thread_);
+ // At this point only one thread exists.
+ inited_ = true;
}
void AsanThreadRegistry::RegisterThread(AsanThread *thread) {
diff --git a/compiler-rt/lib/asan/asan_thread_registry.h b/compiler-rt/lib/asan/asan_thread_registry.h
index b011c29386f..491101e748b 100644
--- a/compiler-rt/lib/asan/asan_thread_registry.h
+++ b/compiler-rt/lib/asan/asan_thread_registry.h
@@ -39,6 +39,7 @@ class AsanThreadRegistry {
void SetCurrent(AsanThread *t);
int GetCurrentTidOrMinusOne() {
+ if (!inited_) return 0;
AsanThread *t = GetCurrent();
return t ? t->tid() : -1;
}
@@ -69,6 +70,7 @@ class AsanThreadRegistry {
AsanStats accumulated_stats_;
int n_threads_;
AsanLock mu_;
+ bool inited_;
};
// Returns a single instance of registry.
OpenPOWER on IntegriCloud