| Index: content/browser/browser_thread_impl.h
|
| diff --git a/content/browser/browser_thread_impl.h b/content/browser/browser_thread_impl.h
|
| index e24b385b8642abe71e7b733174277e39c17a38e4..d00ff5b29bbd42dcbebc74c502fd0c8aadb681b8 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
|
|
|