diff options
Diffstat (limited to 'content/browser/browser_thread_impl.h')
-rw-r--r-- | content/browser/browser_thread_impl.h | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/content/browser/browser_thread_impl.h b/content/browser/browser_thread_impl.h index e24b385..d00ff5b 100644 --- a/content/browser/browser_thread_impl.h +++ b/content/browser/browser_thread_impl.h @@ -6,22 +6,33 @@ #define CONTENT_BROWSER_BROWSER_THREAD_IMPL_H_ #pragma once +#include "base/synchronization/lock.h" +#include "base/threading/thread.h" #include "content/common/content_export.h" #include "content/public/browser/browser_thread.h" namespace content { -class CONTENT_EXPORT BrowserThreadImpl : public BrowserThread { +class CONTENT_EXPORT BrowserThreadImpl + : public BrowserThread, public base::Thread { public: + // Construct a BrowserThreadImpl with the supplied identifier. It is an error + // to construct a BrowserThreadImpl that already exists. explicit BrowserThreadImpl(BrowserThread::ID identifier); + + // Special constructor for the main (UI) thread and unittests. We use a dummy + // thread here since the main thread already exists. BrowserThreadImpl(BrowserThread::ID identifier, MessageLoop* message_loop); virtual ~BrowserThreadImpl(); + protected: + virtual void Init() OVERRIDE; + virtual void CleanUp() OVERRIDE; + private: - // We implement most functionality on the public set of - // BrowserThread functions, but state is stored in the - // BrowserThreadImpl to keep the public API cleaner. Therefore make - // BrowserThread a friend class. + // We implement all the functionality of the public BrowserThread + // functions, but state is stored in the BrowserThreadImpl to keep + // the API cleaner. Therefore make BrowserThread a friend class. friend class BrowserThread; // TODO(brettw) remove this variant when Task->Closure migration is complete. @@ -37,6 +48,13 @@ class CONTENT_EXPORT BrowserThreadImpl : public BrowserThread { const base::Closure& task, int64 delay_ms, bool nestable); + + // Common initialization code for the constructors. + void Initialize(); + + // The identifier of this thread. Only one thread can exist with a given + // identifier at a given time. + ID identifier_; }; } // namespace content |