| Index: base/message_loop/message_loop.cc
|
| diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
|
| index 2212941db9ae15a3a6a30a590389dca826134f35..72185a8e11a3d085d43af4b131f26cbd87a09490 100644
|
| --- a/base/message_loop/message_loop.cc
|
| +++ b/base/message_loop/message_loop.cc
|
| @@ -9,7 +9,6 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/compiler_specific.h"
|
| -#include "base/lazy_instance.h"
|
| #include "base/logging.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/message_loop/message_pump_default.h"
|
| @@ -38,10 +37,11 @@ namespace base {
|
| namespace {
|
|
|
| // A lazily created thread local storage for quick access to a thread's message
|
| -// loop, if one exists. This should be safe and free of static constructors.
|
| -LazyInstance<base::ThreadLocalPointer<MessageLoop> >::Leaky lazy_tls_ptr =
|
| - LAZY_INSTANCE_INITIALIZER;
|
| -
|
| +// loop, if one exists.
|
| +base::ThreadLocalPointer<MessageLoop>* GetTLSMessageLoop() {
|
| + static auto lazy_tls_ptr = new base::ThreadLocalPointer<MessageLoop>();
|
| + return lazy_tls_ptr;
|
| +}
|
| MessageLoop::MessagePumpFactory* message_pump_for_ui_factory_ = NULL;
|
|
|
| #if defined(OS_IOS)
|
| @@ -137,7 +137,7 @@ MessageLoop::~MessageLoop() {
|
|
|
| // OK, now make it so that no one can find us.
|
| if (current() == this)
|
| - lazy_tls_ptr.Pointer()->Set(nullptr);
|
| + GetTLSMessageLoop()->Set(nullptr);
|
| }
|
|
|
| // static
|
| @@ -145,7 +145,7 @@ MessageLoop* MessageLoop::current() {
|
| // TODO(darin): sadly, we cannot enable this yet since people call us even
|
| // when they have no intention of using us.
|
| // DCHECK(loop) << "Ouch, did you forget to initialize me?";
|
| - return lazy_tls_ptr.Pointer()->Get();
|
| + return GetTLSMessageLoop()->Get();
|
| }
|
|
|
| // static
|
| @@ -338,7 +338,7 @@ void MessageLoop::BindToCurrentThread() {
|
| pump_ = CreateMessagePumpForType(type_);
|
|
|
| DCHECK(!current()) << "should only have one message loop per thread";
|
| - lazy_tls_ptr.Pointer()->Set(this);
|
| + GetTLSMessageLoop()->Set(this);
|
|
|
| incoming_task_queue_->StartScheduling();
|
| unbound_task_runner_->BindToCurrentThread();
|
|
|