Add MessageLoopProxy::current
Review URL: http://codereview.chromium.org/7583053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96819 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: edd685f15dfd2841aaeddab567aea0623db1ae69
diff --git a/base/message_loop.cc b/base/message_loop.cc
index 10f4a26..02534f5 100644
--- a/base/message_loop.cc
+++ b/base/message_loop.cc
@@ -12,6 +12,7 @@
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
+#include "base/message_loop_proxy_impl.h"
#include "base/message_pump_default.h"
#include "base/metrics/histogram.h"
#include "base/third_party/dynamic_annotations/dynamic_annotations.h"
@@ -135,6 +136,8 @@
DCHECK(!current()) << "should only have one message loop per thread";
lazy_tls_ptr.Pointer()->Set(this);
+ message_loop_proxy_ = new base::MessageLoopProxyImpl();
+
// TODO(rvargas): Get rid of the OS guards.
#if defined(OS_WIN)
#define MESSAGE_PUMP_UI new base::MessagePumpForUI()
@@ -202,6 +205,11 @@
FOR_EACH_OBSERVER(DestructionObserver, destruction_observers_,
WillDestroyCurrentMessageLoop());
+ // Tell the message_loop_proxy that we are dying.
+ static_cast<base::MessageLoopProxyImpl*>(message_loop_proxy_.get())->
+ WillDestroyCurrentMessageLoop();
+ message_loop_proxy_ = NULL;
+
// OK, now make it so that no one can find us.
lazy_tls_ptr.Pointer()->Set(NULL);