Index: base/message_pump_libevent.cc |
=================================================================== |
--- base/message_pump_libevent.cc (revision 90695) |
+++ base/message_pump_libevent.cc (working copy) |
@@ -107,6 +107,7 @@ |
MessagePumpLibevent::MessagePumpLibevent() |
: keep_running_(true), |
in_run_(false), |
+ processed_io_events_(false), |
event_base_(event_base_new()), |
wakeup_pipe_in_(-1), |
wakeup_pipe_out_(-1) { |
@@ -226,6 +227,10 @@ |
if (!keep_running_) |
break; |
+ event_base_loop(event_base_, EVLOOP_NONBLOCK); |
+ did_work |= processed_io_events_; |
+ processed_io_events_ = false; |
+ |
did_work |= delegate->DoDelayedWork(&delayed_work_time_); |
if (!keep_running_) |
break; |
@@ -295,6 +300,7 @@ |
void MessagePumpLibevent::DidProcessIOEvent() { |
FOR_EACH_OBSERVER(IOObserver, io_observers_, DidProcessIOEvent()); |
+ processed_io_events_ = true; |
} |
bool MessagePumpLibevent::Init() { |