summaryrefslogtreecommitdiffstats
path: root/base/message_loop
diff options
context:
space:
mode:
authorjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-23 12:13:05 +0000
committerjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-23 12:13:05 +0000
commite82339d44d0dde725295785b9fea8c448d382621 (patch)
tree3766361fe20911a5a0bf8890266ca42898bb9523 /base/message_loop
parent6e63303067eb0b5610c77e86518e7fbd86fb8672 (diff)
downloadchromium_src-e82339d44d0dde725295785b9fea8c448d382621.zip
chromium_src-e82339d44d0dde725295785b9fea8c448d382621.tar.gz
chromium_src-e82339d44d0dde725295785b9fea8c448d382621.tar.bz2
[Mac] Reland r276808 Use a native MessagePump instead of a MessagePumpDefault
Original CL: https://codereview.chromium.org/331513002/ Relanding after fixing XmppConnectionTest.MultipleConnect test. BUG=356804,385604 TBR=mark@chromium.org,ajwong@chromium.org Review URL: https://codereview.chromium.org/348283002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279089 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_loop')
-rw-r--r--base/message_loop/message_loop.cc10
-rw-r--r--base/message_loop/message_pump_default.h3
2 files changed, 11 insertions, 2 deletions
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
index dd1a393..ccece4d 100644
--- a/base/message_loop/message_loop.cc
+++ b/base/message_loop/message_loop.cc
@@ -229,6 +229,14 @@ scoped_ptr<MessagePump> MessageLoop::CreateMessagePumpForType(Type type) {
#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 @@ scoped_ptr<MessagePump> MessageLoop::CreateMessagePumpForType(Type type) {
#endif
DCHECK_EQ(MessageLoop::TYPE_DEFAULT, type);
- return scoped_ptr<MessagePump>(new MessagePumpDefault());
+ return MESSAGE_PUMP_DEFAULT;
}
void MessageLoop::AddDestructionObserver(
diff --git a/base/message_loop/message_pump_default.h b/base/message_loop/message_pump_default.h
index a9b83e8..19e7200 100644
--- a/base/message_loop/message_pump_default.h
+++ b/base/message_loop/message_pump_default.h
@@ -5,13 +5,14 @@
#ifndef BASE_MESSAGE_LOOP_MESSAGE_PUMP_DEFAULT_H_
#define BASE_MESSAGE_LOOP_MESSAGE_PUMP_DEFAULT_H_
+#include "base/base_export.h"
#include "base/message_loop/message_pump.h"
#include "base/synchronization/waitable_event.h"
#include "base/time/time.h"
namespace base {
-class MessagePumpDefault : public MessagePump {
+class BASE_EXPORT MessagePumpDefault : public MessagePump {
public:
MessagePumpDefault();
virtual ~MessagePumpDefault();