diff options
| -rw-r--r-- | compiler-rt/lib/asan/asan_thread_registry.cc | 2 | ||||
| -rw-r--r-- | compiler-rt/lib/asan/asan_thread_registry.h | 2 | 
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.  | 

