Index: base/threading/thread.cc |
diff --git a/base/threading/thread.cc b/base/threading/thread.cc |
index aca4ddbaa02a11c37ef02b39b5e4c3da829f404e..a49c73a5a7393ae209396b1bd848af5cc3cfadca 100644 |
--- a/base/threading/thread.cc |
+++ b/base/threading/thread.cc |
@@ -174,8 +174,15 @@ void Thread::ThreadMain() { |
{ |
// The message loop for this thread. |
// Allocated on the heap to centralize any leak reports at this line. |
- scoped_ptr<MessageLoop> message_loop( |
- new MessageLoop(startup_data_->options.message_loop_type)); |
+ scoped_ptr<MessageLoop> message_loop; |
+ if (startup_data_->options.message_pump) { |
+ message_loop.reset(new MessageLoop( |
+ scoped_ptr<base::MessagePump>( |
+ startup_data_->options.message_pump))); |
+ } else { |
+ message_loop.reset( |
+ new MessageLoop(startup_data_->options.message_loop_type)); |
+ } |
// Complete the initialization of our Thread object. |
thread_id_ = PlatformThread::CurrentId(); |