| Index: base/threading/thread.cc
|
| diff --git a/base/threading/thread.cc b/base/threading/thread.cc
|
| index 7bff24232e2bf2d66fda4485a4246ebae2e98332..d9af1b551c411cfaeb42a0069a7e85c2bb1804d0 100644
|
| --- a/base/threading/thread.cc
|
| +++ b/base/threading/thread.cc
|
| @@ -62,6 +62,7 @@ Thread::Thread(const std::string& name)
|
| stopping_(false),
|
| running_(false),
|
| thread_(0),
|
| + id_(kInvalidThreadId),
|
| message_loop_(nullptr),
|
| message_loop_timer_slack_(TIMER_SLACK_NONE),
|
| name_(name) {
|
| @@ -177,8 +178,9 @@ void Thread::StopSoon() {
|
| }
|
|
|
| PlatformThreadId Thread::thread_id() const {
|
| - AutoLock lock(thread_lock_);
|
| - return thread_.id();
|
| + CHECK_NE(kInvalidThreadId, id_);
|
| + AutoLock lock(id_lock_);
|
| + return id_;
|
| }
|
|
|
| bool Thread::IsRunning() const {
|
| @@ -212,6 +214,10 @@ bool Thread::GetThreadWasQuitProperly() {
|
|
|
| void Thread::ThreadMain() {
|
| // Complete the initialization of our Thread object.
|
| + {
|
| + AutoLock lock(id_lock_);
|
| + id_ = PlatformThread::CurrentId();
|
| + }
|
| PlatformThread::SetName(name_.c_str());
|
| ANNOTATE_THREAD_NAME(name_.c_str()); // Tell the name to race detector.
|
|
|
| @@ -231,10 +237,6 @@ void Thread::ThreadMain() {
|
| }
|
| #endif
|
|
|
| - // Make sure the thread_id() returns current thread.
|
| - // (This internally acquires lock against PlatformThread::Create)
|
| - DCHECK_EQ(thread_id(), PlatformThread::CurrentId());
|
| -
|
| // Let the thread do extra initialization.
|
| Init();
|
|
|
|
|