Index: base/message_loop/message_loop.cc |
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc |
index dd1a393ab08633514df9d6d021a1be7ff4dbd23f..ccece4d38ca1d4acb3d9810b9eb7ba9d646a58a4 100644 |
--- a/base/message_loop/message_loop.cc |
+++ b/base/message_loop/message_loop.cc |
@@ -229,6 +229,14 @@ |
#define MESSAGE_PUMP_UI scoped_ptr<MessagePump>(new MessagePumpForUI()) |
#endif |
+#if defined(OS_MACOSX) |
+ // Use an OS native runloop on Mac to support timer coalescing. |
+ #define MESSAGE_PUMP_DEFAULT \ |
+ scoped_ptr<MessagePump>(new MessagePumpCFRunLoop()) |
+#else |
+ #define MESSAGE_PUMP_DEFAULT scoped_ptr<MessagePump>(new MessagePumpDefault()) |
+#endif |
+ |
if (type == MessageLoop::TYPE_UI) { |
if (message_pump_for_ui_factory_) |
return message_pump_for_ui_factory_(); |
@@ -243,7 +251,7 @@ |
#endif |
DCHECK_EQ(MessageLoop::TYPE_DEFAULT, type); |
- return scoped_ptr<MessagePump>(new MessagePumpDefault()); |
+ return MESSAGE_PUMP_DEFAULT; |
} |
void MessageLoop::AddDestructionObserver( |