Index: base/threading/thread.h |
diff --git a/base/threading/thread.h b/base/threading/thread.h |
index 98831b82e5ccea93b2d2f68c583a74682d6925d0..0974b53eda0794f872cc897710b842004d255a21 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 |
@@ -30,13 +34,22 @@ namespace base { |
class BASE_EXPORT Thread : PlatformThread::Delegate { |
public: |
struct Options { |
- Options() : message_loop_type(MessageLoop::TYPE_DEFAULT), stack_size(0) {} |
+ typedef Callback<scoped_ptr<MessagePump>()> MessagePumpFactory; |
+ |
+ Options() : message_loop_type(MessageLoop::TYPE_DEFAULT), stack_size(0) { |
+ } |
Options(MessageLoop::Type type, size_t size) |
- : message_loop_type(type), stack_size(size) {} |
+ : message_loop_type(type), |
+ stack_size(size) {} |
// Specifies the type of message loop that will be allocated on the thread. |
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. |
+ MessagePumpFactory message_pump_factory; |
darin (slow to review)
2013/11/07 21:03:38
You might mention that message_pump_factory overri
|
+ |
// 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. |