| Index: ipc/ipc_sync_channel.cc
|
| diff --git a/ipc/ipc_sync_channel.cc b/ipc/ipc_sync_channel.cc
|
| index 26636e59595c5724217159832a6aa6647bfb9914..9a897b534bd333a1c8714794df615964000bb0ca 100644
|
| --- a/ipc/ipc_sync_channel.cc
|
| +++ b/ipc/ipc_sync_channel.cc
|
| @@ -8,9 +8,10 @@
|
| #include "base/lazy_instance.h"
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| -#include "base/threading/thread_local.h"
|
| #include "base/synchronization/waitable_event.h"
|
| #include "base/synchronization/waitable_event_watcher.h"
|
| +#include "base/thread_task_runner_handle.h"
|
| +#include "base/threading/thread_local.h"
|
| #include "ipc/ipc_sync_message.h"
|
|
|
| using base::TimeDelta;
|
| @@ -69,7 +70,7 @@ class SyncChannel::ReceivedSyncMsgQueue :
|
|
|
| dispatch_event_.Signal();
|
| if (!was_task_pending) {
|
| - listener_message_loop_->PostTask(
|
| + listener_task_runner_->PostTask(
|
| FROM_HERE, base::Bind(&ReceivedSyncMsgQueue::DispatchMessagesTask,
|
| this, scoped_refptr<SyncContext>(context)));
|
| }
|
| @@ -145,8 +146,8 @@ class SyncChannel::ReceivedSyncMsgQueue :
|
| }
|
|
|
| WaitableEvent* dispatch_event() { return &dispatch_event_; }
|
| - base::MessageLoopProxy* listener_message_loop() {
|
| - return listener_message_loop_;
|
| + base::SingleThreadTaskRunner* listener_task_runner() {
|
| + return listener_task_runner_;
|
| }
|
|
|
| // Holds a pointer to the per-thread ReceivedSyncMsgQueue object.
|
| @@ -182,7 +183,7 @@ class SyncChannel::ReceivedSyncMsgQueue :
|
| ReceivedSyncMsgQueue() :
|
| message_queue_version_(0),
|
| dispatch_event_(true, false),
|
| - listener_message_loop_(base::MessageLoopProxy::current()),
|
| + listener_task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| task_pending_(false),
|
| listener_count_(0),
|
| top_send_done_watcher_(NULL) {
|
| @@ -207,7 +208,7 @@ class SyncChannel::ReceivedSyncMsgQueue :
|
| // sender needs its reply before it can reply to our original synchronous
|
| // message.
|
| WaitableEvent dispatch_event_;
|
| - scoped_refptr<base::MessageLoopProxy> listener_message_loop_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> listener_task_runner_;
|
| base::Lock message_lock_;
|
| bool task_pending_;
|
| int listener_count_;
|
| @@ -224,9 +225,9 @@ base::LazyInstance<base::ThreadLocalPointer<SyncChannel::ReceivedSyncMsgQueue> >
|
|
|
| SyncChannel::SyncContext::SyncContext(
|
| Listener* listener,
|
| - base::MessageLoopProxy* ipc_thread,
|
| + base::SingleThreadTaskRunner* ipc_task_runner,
|
| WaitableEvent* shutdown_event)
|
| - : ChannelProxy::Context(listener, ipc_thread),
|
| + : ChannelProxy::Context(listener, ipc_task_runner),
|
| received_sync_msgs_(ReceivedSyncMsgQueue::AddContext()),
|
| shutdown_event_(shutdown_event),
|
| restrict_dispatch_group_(kRestrictDispatchGroup_None) {
|
| @@ -273,7 +274,7 @@ bool SyncChannel::SyncContext::Pop() {
|
| // blocking Send() call, whose reply we received after we made this last
|
| // Send() call. So check if we have any queued replies available that
|
| // can now unblock the listener thread.
|
| - ipc_message_loop()->PostTask(
|
| + ipc_task_runner()->PostTask(
|
| FROM_HERE, base::Bind(&ReceivedSyncMsgQueue::DispatchReplies,
|
| received_sync_msgs_.get()));
|
|
|
| @@ -388,10 +389,10 @@ SyncChannel::SyncChannel(
|
| const IPC::ChannelHandle& channel_handle,
|
| Channel::Mode mode,
|
| Listener* listener,
|
| - base::MessageLoopProxy* ipc_message_loop,
|
| + base::SingleThreadTaskRunner* ipc_task_runner,
|
| bool create_pipe_now,
|
| WaitableEvent* shutdown_event)
|
| - : ChannelProxy(new SyncContext(listener, ipc_message_loop, shutdown_event)),
|
| + : ChannelProxy(new SyncContext(listener, ipc_task_runner, shutdown_event)),
|
| sync_messages_with_no_timeout_allowed_(true) {
|
| ChannelProxy::Init(channel_handle, mode, create_pipe_now);
|
| StartWatching();
|
| @@ -399,9 +400,9 @@ SyncChannel::SyncChannel(
|
|
|
| SyncChannel::SyncChannel(
|
| Listener* listener,
|
| - base::MessageLoopProxy* ipc_message_loop,
|
| + base::SingleThreadTaskRunner* ipc_task_runner,
|
| WaitableEvent* shutdown_event)
|
| - : ChannelProxy(new SyncContext(listener, ipc_message_loop, shutdown_event)),
|
| + : ChannelProxy(new SyncContext(listener, ipc_task_runner, shutdown_event)),
|
| sync_messages_with_no_timeout_allowed_(true) {
|
| StartWatching();
|
| }
|
| @@ -443,7 +444,7 @@ bool SyncChannel::SendWithTimeout(Message* message, int timeout_ms) {
|
| // We use the sync message id so that when a message times out, we don't
|
| // confuse it with another send that is either above/below this Send in
|
| // the call stack.
|
| - context->ipc_message_loop()->PostDelayedTask(
|
| + context->ipc_task_runner()->PostDelayedTask(
|
| FROM_HERE,
|
| base::Bind(&SyncContext::OnSendTimeout, context.get(), message_id),
|
| base::TimeDelta::FromMilliseconds(timeout_ms));
|
|
|