Index: base/threading/thread.cc |
diff --git a/base/threading/thread.cc b/base/threading/thread.cc |
index aca4ddbaa02a11c37ef02b39b5e4c3da829f404e..3b99c2a4f802990b82b7ff19c7093c2a2a179dc2 100644 |
--- a/base/threading/thread.cc |
+++ b/base/threading/thread.cc |
@@ -174,8 +174,14 @@ 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_factory.is_null()) { |
+ message_loop.reset( |
+ new MessageLoop(startup_data_->options.message_pump_factory.Run())); |
+ } else { |
+ message_loop.reset( |
+ new MessageLoop(startup_data_->options.message_loop_type)); |
+ } |
// Complete the initialization of our Thread object. |
thread_id_ = PlatformThread::CurrentId(); |