diff options
author | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-29 22:51:17 +0000 |
---|---|---|
committer | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-29 22:51:17 +0000 |
commit | b2414ca78f43c38aa817f58ddc8247d4c1769e5d (patch) | |
tree | a8c2ac82ce53ba2aec9db231a2129cbf2845fede /base/message_loop_proxy.h | |
parent | fe20095d2cfe95bd02d3bc728f7fa27cbb36cf94 (diff) | |
download | chromium_src-b2414ca78f43c38aa817f58ddc8247d4c1769e5d.zip chromium_src-b2414ca78f43c38aa817f58ddc8247d4c1769e5d.tar.gz chromium_src-b2414ca78f43c38aa817f58ddc8247d4c1769e5d.tar.bz2 |
Replace MessageLoop::DeleteSoon implementation with one that uses base::Bind.
BUG=none
TEST=none
TBR=willchan,brettw,tony
Review URL: http://codereview.chromium.org/9004051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115997 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_loop_proxy.h')
-rw-r--r-- | base/message_loop_proxy.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/base/message_loop_proxy.h b/base/message_loop_proxy.h index aac11b9..738f39f 100644 --- a/base/message_loop_proxy.h +++ b/base/message_loop_proxy.h @@ -10,6 +10,7 @@ #include "base/basictypes.h" #include "base/callback_forward.h" #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h" #include "base/task.h" namespace tracked_objects { @@ -121,8 +122,9 @@ class BASE_EXPORT MessageLoopProxy template <class T> bool DeleteSoon(const tracked_objects::Location& from_here, - T* object) { - return PostNonNestableTask(from_here, new DeleteTask<T>(object)); + const T* object) { + return base::subtle::DeleteHelperInternal<T, bool>::DeleteOnMessageLoop( + this, from_here, object); } template <class T> bool ReleaseSoon(const tracked_objects::Location& from_here, @@ -135,6 +137,7 @@ class BASE_EXPORT MessageLoopProxy static scoped_refptr<MessageLoopProxy> current(); protected: + template <class T, class R> friend class subtle::DeleteHelperInternal; friend class RefCountedThreadSafe<MessageLoopProxy, MessageLoopProxyTraits>; friend struct MessageLoopProxyTraits; @@ -144,6 +147,10 @@ class BASE_EXPORT MessageLoopProxy // Called when the proxy is about to be deleted. Subclasses can override this // to provide deletion on specific threads. virtual void OnDestruct() const; + + bool DeleteSoonInternal(const tracked_objects::Location& from_here, + void(*deleter)(const void*), + const void* object); }; struct MessageLoopProxyTraits { |