| Index: base/threading/thread.h
|
| diff --git a/base/threading/thread.h b/base/threading/thread.h
|
| index 98831b82e5ccea93b2d2f68c583a74682d6925d0..99f9dd4a5976eedb502cdee604a38b191fd80560 100644
|
| --- a/base/threading/thread.h
|
| +++ b/base/threading/thread.h
|
| @@ -8,12 +8,16 @@
|
| #include <string>
|
|
|
| #include "base/base_export.h"
|
| +#include "base/callback.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/message_loop/message_loop_proxy.h"
|
| #include "base/threading/platform_thread.h"
|
|
|
| namespace base {
|
|
|
| +class MessagePump;
|
| +
|
| // A simple thread abstraction that establishes a MessageLoop on a new thread.
|
| // The consumer uses the MessageLoop of the thread to cause code to execute on
|
| // the thread. When this object is destroyed the thread is terminated. All
|
| @@ -29,14 +33,23 @@ namespace base {
|
| // (3.b) MessageLoop::DestructionObserver::WillDestroyCurrentMessageLoop
|
| class BASE_EXPORT Thread : PlatformThread::Delegate {
|
| public:
|
| - struct Options {
|
| - Options() : message_loop_type(MessageLoop::TYPE_DEFAULT), stack_size(0) {}
|
| - Options(MessageLoop::Type type, size_t size)
|
| - : message_loop_type(type), stack_size(size) {}
|
| + struct BASE_EXPORT Options {
|
| + typedef Callback<scoped_ptr<MessagePump>()> MessagePumpFactory;
|
| +
|
| + Options();
|
| + Options(MessageLoop::Type type, size_t size);
|
| + ~Options();
|
|
|
| // Specifies the type of message loop that will be allocated on the thread.
|
| + // This is ignored if message_pump_factory.is_null() is false.
|
| MessageLoop::Type message_loop_type;
|
|
|
| + // Used to create the MessagePump for the MessageLoop. The callback is Run()
|
| + // on the thread. If message_pump_factory.is_null(), then a MessagePump
|
| + // appropriate for |message_loop_type| is created. Setting this forces the
|
| + // MessageLoop::Type to TYPE_CUSTOM.
|
| + MessagePumpFactory message_pump_factory;
|
| +
|
| // Specifies the maximum stack size that the thread is allowed to use.
|
| // This does not necessarily correspond to the thread's initial stack size.
|
| // A value of 0 indicates that the default maximum should be used.
|
|
|