| Index: remoting/jingle_glue/jingle_thread.cc
|
| diff --git a/remoting/jingle_glue/jingle_thread.cc b/remoting/jingle_glue/jingle_thread.cc
|
| index 25f646a1510cf9c807475af90f74eccc545085f1..b8bc42874a8515f16d7170b97c451a138da3368d 100644
|
| --- a/remoting/jingle_glue/jingle_thread.cc
|
| +++ b/remoting/jingle_glue/jingle_thread.cc
|
| @@ -42,12 +42,6 @@ class JingleThread::JingleMessagePump : public base::MessagePump,
|
| // TODO(sergeyu): Remove it when JingleThread moved on Chromium's
|
| // base::Thread.
|
| base::MessagePump::Delegate* delegate = thread_->message_loop();
|
| - // Loop until we run out of work.
|
| - while (true) {
|
| - if (!delegate->DoWork())
|
| - break;
|
| - }
|
| -
|
| // Process all pending tasks.
|
| while (true) {
|
| if (delegate->DoWork())
|
| @@ -61,7 +55,6 @@ class JingleThread::JingleMessagePump : public base::MessagePump,
|
| }
|
|
|
| private:
|
| -
|
| void ScheduleNextDelayedTask() {
|
| DCHECK_EQ(thread_->message_loop(), MessageLoop::current());
|
|
|
| @@ -86,6 +79,16 @@ class JingleThread::JingleMessageLoop : public MessageLoop {
|
| : MessageLoop(MessageLoop::TYPE_IO) {
|
| pump_ = new JingleMessagePump(thread);
|
| }
|
| +
|
| + void Initialize() {
|
| + jingle_message_loop_state_.reset(new AutoRunState(this));
|
| + }
|
| +
|
| + private:
|
| + // AutoRunState sets |state_| for this message loop. It needs to be
|
| + // created here because we never call Run() or RunAllPending() for
|
| + // the thread.
|
| + scoped_ptr<AutoRunState> jingle_message_loop_state_;
|
| };
|
|
|
| TaskPump::TaskPump() {
|
| @@ -119,6 +122,7 @@ void JingleThread::Start() {
|
|
|
| void JingleThread::Run() {
|
| JingleMessageLoop message_loop(this);
|
| + message_loop.Initialize();
|
| message_loop_ = &message_loop;
|
|
|
| TaskPump task_pump;
|
|
|