Chromium Code Reviews| Index: base/message_loop/message_loop_proxy_impl.cc |
| diff --git a/base/message_loop/message_loop_proxy_impl.cc b/base/message_loop/message_loop_proxy_impl.cc |
| index b7abca377e668270d2f1db89f54c3731de577602..1a54ddad00bb0c1f9c554c43c913ac24a32cf561 100644 |
| --- a/base/message_loop/message_loop_proxy_impl.cc |
| +++ b/base/message_loop/message_loop_proxy_impl.cc |
| @@ -12,10 +12,16 @@ |
| namespace base { |
| namespace internal { |
| -MessageLoopProxyImpl::MessageLoopProxyImpl( |
| - scoped_refptr<IncomingTaskQueue> incoming_queue) |
| - : incoming_queue_(incoming_queue), |
| - valid_thread_id_(PlatformThread::CurrentId()) { |
| +// static |
| +MessageLoopProxyImpl* MessageLoopProxyImpl::Create( |
| + scoped_refptr<IncomingTaskQueue> incoming_queue) { |
| + return new MessageLoopProxyImpl(incoming_queue, false /* lazy_init */); |
| +} |
| + |
| +// static |
| +MessageLoopProxyImpl* MessageLoopProxyImpl::CreateForLazyInit( |
| + scoped_refptr<IncomingTaskQueue> incoming_queue) { |
| + return new MessageLoopProxyImpl(incoming_queue, true /* lazy_init */); |
| } |
| bool MessageLoopProxyImpl::PostDelayedTask( |
| @@ -38,6 +44,19 @@ bool MessageLoopProxyImpl::RunsTasksOnCurrentThread() const { |
| return valid_thread_id_ == PlatformThread::CurrentId(); |
| } |
| +void MessageLoopProxyImpl::LazyInit() { |
| + DCHECK_EQ(kInvalidThreadId, valid_thread_id_); |
| + valid_thread_id_ = PlatformThread::CurrentId(); |
| +} |
| + |
| +MessageLoopProxyImpl::MessageLoopProxyImpl( |
| + scoped_refptr<IncomingTaskQueue> incoming_queue, |
| + bool lazy_init) |
|
rvargas (doing something else)
2015/03/26 02:19:27
Maybe it's better to remove this argument and set
kinuko
2015/04/13 02:02:59
Removed.
|
| + : incoming_queue_(incoming_queue), |
| + valid_thread_id_(lazy_init ? kInvalidThreadId |
| + : PlatformThread::CurrentId()) { |
| +} |
| + |
| MessageLoopProxyImpl::~MessageLoopProxyImpl() { |
| } |