From 2cbac9eb5be45ba99a37b28eb1dbf306ee3e67cd Mon Sep 17 00:00:00 2001 From: "sanjeevr@chromium.org" Date: Thu, 29 Apr 2010 03:31:34 +0000 Subject: Created a MessageLoopProxy interface. This provides a thread-safe refcounted interface to the Post* methods of a message loop. This class can outlive the target message loop. Changed ChromeThread to vend an implementation of this proxy. BUG=None TEST=ChromeThread unit-tests modified. Review URL: http://codereview.chromium.org/1800008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45907 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/chrome_thread.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'chrome/browser/chrome_thread.h') diff --git a/chrome/browser/chrome_thread.h b/chrome/browser/chrome_thread.h index 9628e2f..676f6b7 100644 --- a/chrome/browser/chrome_thread.h +++ b/chrome/browser/chrome_thread.h @@ -9,6 +9,8 @@ #include "base/task.h" #include "base/thread.h" +class MessageLoopProxy; + /////////////////////////////////////////////////////////////////////////////// // ChromeThread // @@ -126,6 +128,11 @@ class ChromeThread : public base::Thread { // sets identifier to its ID. Otherwise returns false. static bool GetCurrentThreadIdentifier(ID* identifier); + // Callers can hold on to a refcounted MessageLoopProxy beyond the lifetime + // of the thread. + static scoped_refptr GetMessageLoopProxyForThread( + ID identifier); + // Use these templates in conjuction with RefCountedThreadSafe when you want // to ensure that an object is deleted on a specific thread. This is needed // when an object can hop between threads (i.e. IO -> FILE -> IO), and thread -- cgit v1.1