| Index: base/message_loop_proxy_impl.cc
|
| diff --git a/base/message_loop_proxy_impl.cc b/base/message_loop_proxy_impl.cc
|
| index 3b01fd62f80404b848d3e6d4c35202d5c3f9aec5..b47c934be21e547038259c9e2aa22f3c331a76ba 100644
|
| --- a/base/message_loop_proxy_impl.cc
|
| +++ b/base/message_loop_proxy_impl.cc
|
| @@ -7,11 +7,6 @@
|
|
|
| namespace base {
|
|
|
| -MessageLoopProxyImpl::MessageLoopProxyImpl()
|
| - : target_message_loop_(MessageLoop::current()) {
|
| - target_message_loop_->AddDestructionObserver(this);
|
| -}
|
| -
|
| MessageLoopProxyImpl::~MessageLoopProxyImpl() {
|
| AutoLock lock(message_loop_lock_);
|
| // If the target message loop still exists, the d'tor WILL execute on the
|
| @@ -56,25 +51,10 @@ bool MessageLoopProxyImpl::BelongsToCurrentThread() {
|
| (MessageLoop::current() == target_message_loop_));
|
| }
|
|
|
| -bool MessageLoopProxyImpl::PostTaskHelper(
|
| - const tracked_objects::Location& from_here, Task* task, int64 delay_ms,
|
| - bool nestable) {
|
| - bool ret = false;
|
| - {
|
| - AutoLock lock(message_loop_lock_);
|
| - if (target_message_loop_) {
|
| - if (nestable) {
|
| - target_message_loop_->PostDelayedTask(from_here, task, delay_ms);
|
| - } else {
|
| - target_message_loop_->PostNonNestableDelayedTask(from_here, task,
|
| - delay_ms);
|
| - }
|
| - ret = true;
|
| - }
|
| - }
|
| - if (!ret)
|
| - delete task;
|
| - return ret;
|
| +// MessageLoop::DestructionObserver implementation
|
| +void MessageLoopProxyImpl::WillDestroyCurrentMessageLoop() {
|
| + AutoLock lock(message_loop_lock_);
|
| + target_message_loop_ = NULL;
|
| }
|
|
|
| void MessageLoopProxyImpl::OnDestruct() const {
|
| @@ -96,10 +76,30 @@ void MessageLoopProxyImpl::OnDestruct() const {
|
| delete this;
|
| }
|
|
|
| -// MessageLoop::DestructionObserver implementation
|
| -void MessageLoopProxyImpl::WillDestroyCurrentMessageLoop() {
|
| - AutoLock lock(message_loop_lock_);
|
| - target_message_loop_ = NULL;
|
| +MessageLoopProxyImpl::MessageLoopProxyImpl()
|
| + : target_message_loop_(MessageLoop::current()) {
|
| + target_message_loop_->AddDestructionObserver(this);
|
| +}
|
| +
|
| +bool MessageLoopProxyImpl::PostTaskHelper(
|
| + const tracked_objects::Location& from_here, Task* task, int64 delay_ms,
|
| + bool nestable) {
|
| + bool ret = false;
|
| + {
|
| + AutoLock lock(message_loop_lock_);
|
| + if (target_message_loop_) {
|
| + if (nestable) {
|
| + target_message_loop_->PostDelayedTask(from_here, task, delay_ms);
|
| + } else {
|
| + target_message_loop_->PostNonNestableDelayedTask(from_here, task,
|
| + delay_ms);
|
| + }
|
| + ret = true;
|
| + }
|
| + }
|
| + if (!ret)
|
| + delete task;
|
| + return ret;
|
| }
|
|
|
| scoped_refptr<MessageLoopProxy>
|
|
|