summaryrefslogtreecommitdiffstats
path: root/base/message_loop_proxy.h
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-30 06:46:30 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-30 06:46:30 +0000
commitc29985edade9519981211f183a3278ec62aa0469 (patch)
treef6cf6c8b58740fda179c70dc42569d0bac538a27 /base/message_loop_proxy.h
parentbe9764157d577464924341079b558ce5eb98dd42 (diff)
downloadchromium_src-c29985edade9519981211f183a3278ec62aa0469.zip
chromium_src-c29985edade9519981211f183a3278ec62aa0469.tar.gz
chromium_src-c29985edade9519981211f183a3278ec62aa0469.tar.bz2
Convert various ReleaseSoon methods to use base::Bind()
BUG=none TEST=none TBR=brettw,atwilson Review URL: http://codereview.chromium.org/9022034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116030 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_loop_proxy.h')
-rw-r--r--base/message_loop_proxy.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/base/message_loop_proxy.h b/base/message_loop_proxy.h
index 738f39f..b6da5e4 100644
--- a/base/message_loop_proxy.h
+++ b/base/message_loop_proxy.h
@@ -123,13 +123,14 @@ class BASE_EXPORT MessageLoopProxy
template <class T>
bool DeleteSoon(const tracked_objects::Location& from_here,
const T* object) {
- return base::subtle::DeleteHelperInternal<T, bool>::DeleteOnMessageLoop(
+ return subtle::DeleteHelperInternal<T, bool>::DeleteOnMessageLoop(
this, from_here, object);
}
template <class T>
bool ReleaseSoon(const tracked_objects::Location& from_here,
T* object) {
- return PostNonNestableTask(from_here, new ReleaseTask<T>(object));
+ return subtle::ReleaseHelperInternal<T, bool>::ReleaseOnMessageLoop(
+ this, from_here, object);
}
// Gets the MessageLoopProxy for the current message loop, creating one if
@@ -137,7 +138,6 @@ 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;
@@ -148,9 +148,15 @@ class BASE_EXPORT MessageLoopProxy
// to provide deletion on specific threads.
virtual void OnDestruct() const;
+ private:
+ template <class T, class R> friend class subtle::DeleteHelperInternal;
+ template <class T, class R> friend class subtle::ReleaseHelperInternal;
bool DeleteSoonInternal(const tracked_objects::Location& from_here,
void(*deleter)(const void*),
const void* object);
+ bool ReleaseSoonInternal(const tracked_objects::Location& from_here,
+ void(*releaser)(const void*),
+ const void* object);
};
struct MessageLoopProxyTraits {