diff options
Diffstat (limited to 'base/message_loop/message_pump_libevent.cc')
-rw-r--r-- | base/message_loop/message_pump_libevent.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/base/message_loop/message_pump_libevent.cc b/base/message_loop/message_pump_libevent.cc index 26be687..d52025a 100644 --- a/base/message_loop/message_pump_libevent.cc +++ b/base/message_loop/message_pump_libevent.cc @@ -217,7 +217,7 @@ static void timer_callback(int fd, short events, void *context) // Reentrant! void MessagePumpLibevent::Run(Delegate* delegate) { - DCHECK(keep_running_) << "Quit must have been called outside of Run!"; + AutoReset<bool> auto_reset_keep_running(&keep_running_, true); AutoReset<bool> auto_reset_in_run(&in_run_, true); // event_base_loopexit() + EVLOOP_ONCE is leaky, see http://crbug.com/25641. @@ -275,12 +275,10 @@ void MessagePumpLibevent::Run(Delegate* delegate) { } } } - - keep_running_ = true; } void MessagePumpLibevent::Quit() { - DCHECK(in_run_); + DCHECK(in_run_) << "Quit was called outside of Run!"; // Tell both libevent and Run that they should break out of their loops. keep_running_ = false; ScheduleWork(); |