From e687bdff5dd7bfed6304396880699fc05550c869 Mon Sep 17 00:00:00 2001 From: skyostil Date: Tue, 12 May 2015 04:29:21 -0700 Subject: [PATCH] ipc: Remove use of MessageLoopProxy and deprecated MessageLoop APIs This patch was autogenerated with https://codereview.chromium.org/1010073002/. BUG=465354 Review URL: https://codereview.chromium.org/1127153003 Cr-Commit-Position: refs/heads/master@{#329389} --- ipc/ipc_channel_nacl.cc | 46 ++++++++-------- ipc/ipc_channel_posix_unittest.cc | 7 +-- ipc/ipc_channel_proxy_unittest.cc | 3 +- ipc/ipc_channel_unittest.cc | 3 +- ipc/ipc_logging.cc | 10 ++-- ipc/ipc_perftest_support.cc | 2 +- ipc/ipc_send_fds_test.cc | 31 +++++------ ipc/ipc_sync_channel_unittest.cc | 93 ++++++++++++++------------------ ipc/ipc_sync_message_filter.cc | 24 +++++---- ipc/ipc_sync_message_filter.h | 6 +-- ipc/ipc_test_base.cc | 3 +- ipc/mojo/async_handle_waiter_unittest.cc | 5 +- ipc/mojo/ipc_channel_mojo.cc | 2 +- ipc/mojo/ipc_channel_mojo_host.cc | 5 +- ipc/mojo/ipc_channel_mojo_unittest.cc | 7 ++- ipc/mojo/ipc_message_pipe_reader.cc | 7 +-- ipc/sync_socket_unittest.cc | 14 ++--- ipc/unix_domain_socket_util_unittest.cc | 10 ++-- 18 files changed, 136 insertions(+), 142 deletions(-) diff --git a/ipc/ipc_channel_nacl.cc b/ipc/ipc_channel_nacl.cc index 60a5ddaaf279..f5b33cea41ad 100644 --- a/ipc/ipc_channel_nacl.cc +++ b/ipc/ipc_channel_nacl.cc @@ -12,9 +12,10 @@ #include "base/bind.h" #include "base/logging.h" -#include "base/message_loop/message_loop_proxy.h" +#include "base/single_thread_task_runner.h" #include "base/synchronization/lock.h" #include "base/task_runner_util.h" +#include "base/thread_task_runner_handle.h" #include "base/threading/simple_thread.h" #include "ipc/ipc_listener.h" #include "ipc/ipc_logging.h" @@ -74,9 +75,9 @@ class ChannelNacl::ReaderThreadRunner // above callbacks. ReaderThreadRunner( int pipe, - base::Callback)> data_read_callback, - base::Callback failure_callback, - scoped_refptr main_message_loop); + base::Callback)> data_read_callback, + base::Callback failure_callback, + scoped_refptr main_task_runner); // DelegateSimpleThread implementation. Reads data from the pipe in a loop // until either we are told to quit or a read fails. @@ -86,20 +87,20 @@ class ChannelNacl::ReaderThreadRunner int pipe_; base::Callback)> data_read_callback_; base::Callback failure_callback_; - scoped_refptr main_message_loop_; + scoped_refptr main_task_runner_; DISALLOW_COPY_AND_ASSIGN(ReaderThreadRunner); }; ChannelNacl::ReaderThreadRunner::ReaderThreadRunner( int pipe, - base::Callback)> data_read_callback, - base::Callback failure_callback, - scoped_refptr main_message_loop) + base::Callback)> data_read_callback, + base::Callback failure_callback, + scoped_refptr main_task_runner) : pipe_(pipe), data_read_callback_(data_read_callback), failure_callback_(failure_callback), - main_message_loop_(main_message_loop) { + main_task_runner_(main_task_runner) { } void ChannelNacl::ReaderThreadRunner::Run() { @@ -107,10 +108,11 @@ void ChannelNacl::ReaderThreadRunner::Run() { scoped_ptr msg_contents(new MessageContents); bool success = ReadDataOnReaderThread(pipe_, msg_contents.get()); if (success) { - main_message_loop_->PostTask(FROM_HERE, + main_task_runner_->PostTask( + FROM_HERE, base::Bind(data_read_callback_, base::Passed(&msg_contents))); } else { - main_message_loop_->PostTask(FROM_HERE, failure_callback_); + main_task_runner_->PostTask(FROM_HERE, failure_callback_); // Because the read failed, we know we're going to quit. Don't bother // trying to read again. return; @@ -159,15 +161,13 @@ bool ChannelNacl::Connect() { // where Channel::Send will be called, and the same thread that should receive // messages). The constructor might be invoked on another thread (see // ChannelProxy for an example of that). Therefore, we must wait until Connect - // is called to decide which MessageLoopProxy to pass to ReaderThreadRunner. - reader_thread_runner_.reset( - new ReaderThreadRunner( - pipe_, - base::Bind(&ChannelNacl::DidRecvMsg, - weak_ptr_factory_.GetWeakPtr()), - base::Bind(&ChannelNacl::ReadDidFail, - weak_ptr_factory_.GetWeakPtr()), - base::MessageLoopProxy::current())); + // is called to decide which SingleThreadTaskRunner to pass to + // ReaderThreadRunner. + reader_thread_runner_.reset(new ReaderThreadRunner( + pipe_, + base::Bind(&ChannelNacl::DidRecvMsg, weak_ptr_factory_.GetWeakPtr()), + base::Bind(&ChannelNacl::ReadDidFail, weak_ptr_factory_.GetWeakPtr()), + base::ThreadTaskRunnerHandle::Get())); reader_thread_.reset( new base::DelegateSimpleThread(reader_thread_runner_.get(), "ipc_channel_nacl reader thread")); @@ -175,9 +175,9 @@ bool ChannelNacl::Connect() { waiting_connect_ = false; // If there were any messages queued before connection, send them. ProcessOutgoingMessages(); - base::MessageLoopProxy::current()->PostTask(FROM_HERE, - base::Bind(&ChannelNacl::CallOnChannelConnected, - weak_ptr_factory_.GetWeakPtr())); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::Bind(&ChannelNacl::CallOnChannelConnected, + weak_ptr_factory_.GetWeakPtr())); return true; } diff --git a/ipc/ipc_channel_posix_unittest.cc b/ipc/ipc_channel_posix_unittest.cc index 78cb7453e030..aa545402f4b7 100644 --- a/ipc/ipc_channel_posix_unittest.cc +++ b/ipc/ipc_channel_posix_unittest.cc @@ -14,11 +14,12 @@ #include "base/basictypes.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/location.h" #include "base/memory/scoped_ptr.h" -#include "base/message_loop/message_loop.h" #include "base/path_service.h" #include "base/posix/eintr_wrapper.h" #include "base/process/process.h" +#include "base/single_thread_task_runner.h" #include "base/test/multiprocess_test.h" #include "base/test/test_timeouts.h" #include "ipc/ipc_listener.h" @@ -88,7 +89,7 @@ class IPCChannelPosixTestListener : public IPC::Listener { loop->QuitNow(); } else { // Die as soon as Run is called. - loop->PostTask(FROM_HERE, loop->QuitClosure()); + loop->task_runner()->PostTask(FROM_HERE, loop->QuitClosure()); } } @@ -188,7 +189,7 @@ void IPCChannelPosixTest::SpinRunLoop(base::TimeDelta delay) { // in the case of a bad test. Usually, the run loop will quit sooner than // that because all tests use a IPCChannelPosixTestListener which quits the // current run loop on any channel activity. - loop->PostDelayedTask(FROM_HERE, loop->QuitClosure(), delay); + loop->task_runner()->PostDelayedTask(FROM_HERE, loop->QuitClosure(), delay); loop->Run(); } diff --git a/ipc/ipc_channel_proxy_unittest.cc b/ipc/ipc_channel_proxy_unittest.cc index e7ebe64bd82f..4144a8adba17 100644 --- a/ipc/ipc_channel_proxy_unittest.cc +++ b/ipc/ipc_channel_proxy_unittest.cc @@ -4,7 +4,6 @@ #include "build/build_config.h" -#include "base/message_loop/message_loop.h" #include "base/pickle.h" #include "base/threading/thread.h" #include "ipc/ipc_message.h" @@ -243,7 +242,7 @@ class IPCChannelProxyTest : public IPCTestBase { thread_->StartWithOptions(options); listener_.reset(new QuitListener()); - CreateChannelProxy(listener_.get(), thread_->message_loop_proxy().get()); + CreateChannelProxy(listener_.get(), thread_->task_runner().get()); ASSERT_TRUE(StartClient()); } diff --git a/ipc/ipc_channel_unittest.cc b/ipc/ipc_channel_unittest.cc index 19cfad862dda..b6a02262613d 100644 --- a/ipc/ipc_channel_unittest.cc +++ b/ipc/ipc_channel_unittest.cc @@ -10,7 +10,6 @@ #include -#include "base/message_loop/message_loop.h" #include "base/pickle.h" #include "base/strings/string16.h" #include "base/strings/utf_string_conversions.h" @@ -128,7 +127,7 @@ TEST_F(IPCChannelTest, ChannelProxyTest) { // Set up IPC channel proxy. IPC::TestChannelListener listener; - CreateChannelProxy(&listener, thread.message_loop_proxy().get()); + CreateChannelProxy(&listener, thread.task_runner().get()); listener.Init(sender()); ASSERT_TRUE(StartClient()); diff --git a/ipc/ipc_logging.cc b/ipc/ipc_logging.cc index 65d88901d93c..3db4e676d15c 100644 --- a/ipc/ipc_logging.cc +++ b/ipc/ipc_logging.cc @@ -13,9 +13,10 @@ #include "base/command_line.h" #include "base/location.h" #include "base/logging.h" -#include "base/message_loop/message_loop.h" +#include "base/single_thread_task_runner.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" +#include "base/thread_task_runner_handle.h" #include "base/threading/thread.h" #include "base/time/time.h" #include "ipc/ipc_message_utils.h" @@ -161,7 +162,7 @@ void Logging::OnPostDispatchMessage(const Message& message, if (base::MessageLoop::current() == main_thread_) { Log(data); } else { - main_thread_->PostTask( + main_thread_->task_runner()->PostTask( FROM_HERE, base::Bind(&Logging::Log, base::Unretained(this), data)); } } @@ -231,9 +232,8 @@ void Logging::Log(const LogData& data) { queued_logs_.push_back(data); if (!queue_invoke_later_pending_) { queue_invoke_later_pending_ = true; - base::MessageLoop::current()->PostDelayedTask( - FROM_HERE, - base::Bind(&Logging::OnSendLogs, base::Unretained(this)), + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, base::Bind(&Logging::OnSendLogs, base::Unretained(this)), base::TimeDelta::FromMilliseconds(kLogSendDelayMs)); } } diff --git a/ipc/ipc_perftest_support.cc b/ipc/ipc_perftest_support.cc index 714410348ee0..ae8be7fb2d17 100644 --- a/ipc/ipc_perftest_support.cc +++ b/ipc/ipc_perftest_support.cc @@ -342,7 +342,7 @@ int PingPongTestClient::RunMain() { } scoped_refptr PingPongTestClient::task_runner() { - return main_message_loop_.message_loop_proxy(); + return main_message_loop_.task_runner(); } LockThreadAffinity::LockThreadAffinity(int cpu_number) diff --git a/ipc/ipc_send_fds_test.cc b/ipc/ipc_send_fds_test.cc index 2e05e03caf6e..148eecab1257 100644 --- a/ipc/ipc_send_fds_test.cc +++ b/ipc/ipc_send_fds_test.cc @@ -19,9 +19,10 @@ extern "C" { #include "base/callback.h" #include "base/file_descriptor_posix.h" -#include "base/message_loop/message_loop.h" +#include "base/location.h" #include "base/pickle.h" #include "base/posix/eintr_wrapper.h" +#include "base/single_thread_task_runner.h" #include "base/synchronization/waitable_event.h" #include "ipc/ipc_message_attachment_set.h" #include "ipc/ipc_message_utils.h" @@ -250,12 +251,10 @@ class PipeChannelHelper { out = IPC::Channel::CreateClient(out_handle, &cb_listener_); // PostTask the connect calls to make sure the callbacks happens // on the right threads. - in_thread_->message_loop()->PostTask( - FROM_HERE, - base::Bind(&PipeChannelHelper::Connect, in.get())); - out_thread_->message_loop()->PostTask( - FROM_HERE, - base::Bind(&PipeChannelHelper::Connect, out.get())); + in_thread_->task_runner()->PostTask( + FROM_HERE, base::Bind(&PipeChannelHelper::Connect, in.get())); + out_thread_->task_runner()->PostTask( + FROM_HERE, base::Bind(&PipeChannelHelper::Connect, out.get())); } static void DestroyChannel(scoped_ptr *c, @@ -267,12 +266,10 @@ class PipeChannelHelper { ~PipeChannelHelper() { base::WaitableEvent a(true, false); base::WaitableEvent b(true, false); - in_thread_->message_loop()->PostTask( - FROM_HERE, - base::Bind(&PipeChannelHelper::DestroyChannel, &in, &a)); - out_thread_->message_loop()->PostTask( - FROM_HERE, - base::Bind(&PipeChannelHelper::DestroyChannel, &out, &b)); + in_thread_->task_runner()->PostTask( + FROM_HERE, base::Bind(&PipeChannelHelper::DestroyChannel, &in, &a)); + out_thread_->task_runner()->PostTask( + FROM_HERE, base::Bind(&PipeChannelHelper::DestroyChannel, &out, &b)); a.Wait(); b.Wait(); } @@ -321,11 +318,9 @@ class IPCMultiSendingFdsTest : public testing::Test { for (int i = 0; i < pipes_to_send; i++) { received_.Reset(); std::pair pipe_fds = make_socket_pair(); - t->message_loop()->PostTask( - FROM_HERE, - base::Bind(&PipeChannelHelper::Send, - base::Unretained(dest), - pipe_fds.second)); + t->task_runner()->PostTask( + FROM_HERE, base::Bind(&PipeChannelHelper::Send, + base::Unretained(dest), pipe_fds.second)); char tmp = 'x'; CHECK_EQ(1, HANDLE_EINTR(write(pipe_fds.first, &tmp, 1))); CHECK_EQ(0, IGNORE_EINTR(close(pipe_fds.first))); diff --git a/ipc/ipc_sync_channel_unittest.cc b/ipc/ipc_sync_channel_unittest.cc index 468a18fbacd2..7e81d5deabc1 100644 --- a/ipc/ipc_sync_channel_unittest.cc +++ b/ipc/ipc_sync_channel_unittest.cc @@ -9,13 +9,15 @@ #include "base/basictypes.h" #include "base/bind.h" +#include "base/location.h" #include "base/logging.h" #include "base/memory/scoped_ptr.h" -#include "base/message_loop/message_loop.h" #include "base/process/process_handle.h" #include "base/run_loop.h" +#include "base/single_thread_task_runner.h" #include "base/strings/string_util.h" #include "base/synchronization/waitable_event.h" +#include "base/thread_task_runner_handle.h" #include "base/threading/platform_thread.h" #include "base/threading/thread.h" #include "ipc/ipc_listener.h" @@ -72,7 +74,7 @@ class Worker : public Listener, public Sender { } void Start() { StartThread(&listener_thread_, base::MessageLoop::TYPE_DEFAULT); - ListenerThread()->message_loop()->PostTask( + ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(&Worker::OnStart, this)); } void Shutdown() { @@ -80,7 +82,7 @@ class Worker : public Listener, public Sender { // ~Worker(), since that'll reset the vtable pointer (to Worker's), which // may result in a race conditions. See http://crbug.com/25841. WaitableEvent listener_done(false, false), ipc_done(false, false); - ListenerThread()->message_loop()->PostTask( + ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(&Worker::OnListenerThreadShutdown1, this, &listener_done, &ipc_done)); listener_done.Wait(); @@ -152,8 +154,8 @@ class Worker : public Listener, public Sender { virtual SyncChannel* CreateChannel() { scoped_ptr channel = SyncChannel::Create( - channel_name_, mode_, this, ipc_thread_.message_loop_proxy().get(), - true, &shutdown_event_); + channel_name_, mode_, this, ipc_thread_.task_runner().get(), true, + &shutdown_event_); return channel.release(); } @@ -190,9 +192,9 @@ class Worker : public Listener, public Sender { base::RunLoop().RunUntilIdle(); ipc_event->Signal(); - listener_thread_.message_loop()->PostTask( - FROM_HERE, base::Bind(&Worker::OnListenerThreadShutdown2, this, - listener_event)); + listener_thread_.task_runner()->PostTask( + FROM_HERE, + base::Bind(&Worker::OnListenerThreadShutdown2, this, listener_event)); } void OnListenerThreadShutdown2(WaitableEvent* listener_event) { @@ -324,8 +326,7 @@ class TwoStepServer : public Worker { SyncChannel* CreateChannel() override { SyncChannel* channel = SyncChannel::Create(channel_name(), mode(), this, - ipc_thread().message_loop_proxy().get(), - create_pipe_now_, + ipc_thread().task_runner().get(), create_pipe_now_, shutdown_event()).release(); return channel; } @@ -347,8 +348,7 @@ class TwoStepClient : public Worker { SyncChannel* CreateChannel() override { SyncChannel* channel = SyncChannel::Create(channel_name(), mode(), this, - ipc_thread().message_loop_proxy().get(), - create_pipe_now_, + ipc_thread().task_runner().get(), create_pipe_now_, shutdown_event()).release(); return channel; } @@ -896,11 +896,10 @@ class DoneEventRaceServer : public Worker { : Worker(Channel::MODE_SERVER, "done_event_race_server") { } void Run() override { - base::MessageLoop::current()->PostTask(FROM_HERE, - base::Bind(&NestedCallback, this)); - base::MessageLoop::current()->PostDelayedTask( - FROM_HERE, - base::Bind(&TimeoutCallback), + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::Bind(&NestedCallback, this)); + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, base::Bind(&TimeoutCallback), base::TimeDelta::FromSeconds(9)); // Even though we have a timeout on the Send, it will succeed since for this // bug, the reply message comes back and is deserialized, however the done @@ -926,17 +925,17 @@ TEST_F(IPCSyncChannelTest, DoneEventRace) { class TestSyncMessageFilter : public SyncMessageFilter { public: - TestSyncMessageFilter(base::WaitableEvent* shutdown_event, - Worker* worker, - scoped_refptr message_loop) + TestSyncMessageFilter( + base::WaitableEvent* shutdown_event, + Worker* worker, + scoped_refptr task_runner) : SyncMessageFilter(shutdown_event), worker_(worker), - message_loop_(message_loop) { - } + task_runner_(task_runner) {} void OnFilterAdded(Sender* sender) override { SyncMessageFilter::OnFilterAdded(sender); - message_loop_->PostTask( + task_runner_->PostTask( FROM_HERE, base::Bind(&TestSyncMessageFilter::SendMessageOnHelperThread, this)); } @@ -954,7 +953,7 @@ class TestSyncMessageFilter : public SyncMessageFilter { ~TestSyncMessageFilter() override {} Worker* worker_; - scoped_refptr message_loop_; + scoped_refptr task_runner_; }; class SyncMessageFilterServer : public Worker { @@ -966,7 +965,7 @@ class SyncMessageFilterServer : public Worker { options.message_loop_type = base::MessageLoop::TYPE_DEFAULT; thread_.StartWithOptions(options); filter_ = new TestSyncMessageFilter(shutdown_event(), this, - thread_.message_loop_proxy()); + thread_.task_runner()); } void Run() override { @@ -987,7 +986,7 @@ class ServerSendAfterClose : public Worker { } bool SendDummy() { - ListenerThread()->message_loop()->PostTask( + ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(base::IgnoreResult(&ServerSendAfterClose::Send), this, new SyncChannelTestMsg_NoArgs)); return true; @@ -1053,7 +1052,7 @@ class RestrictedDispatchServer : public Worker { Send(msg); // Signal the event after the message has been sent on the channel, on the // IPC thread. - ipc_thread().message_loop()->PostTask( + ipc_thread().task_runner()->PostTask( FROM_HERE, base::Bind(&RestrictedDispatchServer::OnPingSent, this)); } @@ -1128,7 +1127,7 @@ class RestrictedDispatchClient : public Worker { // send a message on that same channel. channel()->SetRestrictDispatchChannelGroup(1); - server_->ListenerThread()->message_loop()->PostTask( + server_->ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(&RestrictedDispatchServer::OnDoPing, server_, 1)); sent_ping_event_->Wait(); Send(new SyncChannelTestMsg_NoArgs); @@ -1137,15 +1136,11 @@ class RestrictedDispatchClient : public Worker { else LOG(ERROR) << "Send failed to dispatch incoming message on same channel"; - non_restricted_channel_ = - SyncChannel::Create("non_restricted_channel", - IPC::Channel::MODE_CLIENT, - this, - ipc_thread().message_loop_proxy().get(), - true, - shutdown_event()); + non_restricted_channel_ = SyncChannel::Create( + "non_restricted_channel", IPC::Channel::MODE_CLIENT, this, + ipc_thread().task_runner().get(), true, shutdown_event()); - server_->ListenerThread()->message_loop()->PostTask( + server_->ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(&RestrictedDispatchServer::OnDoPing, server_, 2)); sent_ping_event_->Wait(); // Check that the incoming message is *not* dispatched when sending on the @@ -1170,7 +1165,7 @@ class RestrictedDispatchClient : public Worker { // Check that the incoming message on the non-restricted channel is // dispatched when sending on the restricted channel. - server2_->ListenerThread()->message_loop()->PostTask( + server2_->ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(&NonRestrictedDispatchServer::OnDoPingTTL, server2_, 3)); int value = 0; @@ -1392,10 +1387,10 @@ class RestrictedDispatchDeadlockClient1 : public Worker { void Run() override { server_ready_event_->Wait(); - server_->ListenerThread()->message_loop()->PostTask( + server_->ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(&RestrictedDispatchDeadlockServer::OnDoServerTask, server_)); - peer_->ListenerThread()->message_loop()->PostTask( + peer_->ListenerThread()->task_runner()->PostTask( FROM_HERE, base::Bind(&RestrictedDispatchDeadlockClient2::OnDoClient2Task, peer_)); events_[0]->Wait(); @@ -1528,13 +1523,9 @@ class RestrictedDispatchPipeWorker : public Worker { if (is_first()) event1_->Signal(); event2_->Wait(); - other_channel_ = - SyncChannel::Create(other_channel_name_, - IPC::Channel::MODE_CLIENT, - this, - ipc_thread().message_loop_proxy().get(), - true, - shutdown_event()); + other_channel_ = SyncChannel::Create( + other_channel_name_, IPC::Channel::MODE_CLIENT, this, + ipc_thread().task_runner().get(), true, shutdown_event()); other_channel_->SetRestrictDispatchChannelGroup(group_); if (!is_first()) { event1_->Signal(); @@ -1608,13 +1599,9 @@ class ReentrantReplyServer1 : public Worker { server_ready_(server_ready) { } void Run() override { - server2_channel_ = - SyncChannel::Create("reentrant_reply2", - IPC::Channel::MODE_CLIENT, - this, - ipc_thread().message_loop_proxy().get(), - true, - shutdown_event()); + server2_channel_ = SyncChannel::Create( + "reentrant_reply2", IPC::Channel::MODE_CLIENT, this, + ipc_thread().task_runner().get(), true, shutdown_event()); server_ready_->Signal(); Message* msg = new SyncChannelTestMsg_Reentrant1(); server2_channel_->Send(msg); diff --git a/ipc/ipc_sync_message_filter.cc b/ipc/ipc_sync_message_filter.cc index e2ea1bfb1ee5..6a408ec12cf3 100644 --- a/ipc/ipc_sync_message_filter.cc +++ b/ipc/ipc_sync_message_filter.cc @@ -7,33 +7,33 @@ #include "base/bind.h" #include "base/location.h" #include "base/logging.h" -#include "base/message_loop/message_loop_proxy.h" +#include "base/single_thread_task_runner.h" #include "base/synchronization/waitable_event.h" +#include "base/thread_task_runner_handle.h" #include "ipc/ipc_channel.h" #include "ipc/ipc_sync_message.h" -using base::MessageLoopProxy; - namespace IPC { SyncMessageFilter::SyncMessageFilter(base::WaitableEvent* shutdown_event) : sender_(NULL), - listener_loop_(MessageLoopProxy::current()), + listener_task_runner_(base::ThreadTaskRunnerHandle::Get()), shutdown_event_(shutdown_event) { } bool SyncMessageFilter::Send(Message* message) { { base::AutoLock auto_lock(lock_); - if (!io_loop_.get()) { + if (!io_task_runner_.get()) { delete message; return false; } } if (!message->is_sync()) { - io_loop_->PostTask( - FROM_HERE, base::Bind(&SyncMessageFilter::SendOnIOThread, this, message)); + io_task_runner_->PostTask( + FROM_HERE, + base::Bind(&SyncMessageFilter::SendOnIOThread, this, message)); return true; } @@ -47,12 +47,14 @@ bool SyncMessageFilter::Send(Message* message) { base::AutoLock auto_lock(lock_); // Can't use this class on the main thread or else it can lead to deadlocks. // Also by definition, can't use this on IO thread since we're blocking it. - DCHECK(MessageLoopProxy::current().get() != listener_loop_.get()); - DCHECK(MessageLoopProxy::current().get() != io_loop_.get()); + if (base::ThreadTaskRunnerHandle::IsSet()) { + DCHECK(base::ThreadTaskRunnerHandle::Get() != listener_task_runner_); + DCHECK(base::ThreadTaskRunnerHandle::Get() != io_task_runner_); + } pending_sync_messages_.insert(&pending_message); } - io_loop_->PostTask( + io_task_runner_->PostTask( FROM_HERE, base::Bind(&SyncMessageFilter::SendOnIOThread, this, message)); base::WaitableEvent* events[2] = { shutdown_event_, &done_event }; @@ -70,7 +72,7 @@ bool SyncMessageFilter::Send(Message* message) { void SyncMessageFilter::OnFilterAdded(Sender* sender) { sender_ = sender; base::AutoLock auto_lock(lock_); - io_loop_ = MessageLoopProxy::current(); + io_task_runner_ = base::ThreadTaskRunnerHandle::Get(); } void SyncMessageFilter::OnChannelError() { diff --git a/ipc/ipc_sync_message_filter.h b/ipc/ipc_sync_message_filter.h index 49c3ca031719..ee6677ef3101 100644 --- a/ipc/ipc_sync_message_filter.h +++ b/ipc/ipc_sync_message_filter.h @@ -15,7 +15,7 @@ #include "ipc/message_filter.h" namespace base { -class MessageLoopProxy; +class SingleThreadTaskRunner; class WaitableEvent; } @@ -51,10 +51,10 @@ class IPC_EXPORT SyncMessageFilter : public MessageFilter, public Sender { Sender* sender_; // The process's main thread. - scoped_refptr listener_loop_; + scoped_refptr listener_task_runner_; // The message loop where the Channel lives. - scoped_refptr io_loop_; + scoped_refptr io_task_runner_; typedef std::set PendingSyncMessages; PendingSyncMessages pending_sync_messages_; diff --git a/ipc/ipc_test_base.cc b/ipc/ipc_test_base.cc index 6d63087d8503..0d6628226917 100644 --- a/ipc/ipc_test_base.cc +++ b/ipc/ipc_test_base.cc @@ -4,6 +4,7 @@ #include "build/build_config.h" +#include "base/single_thread_task_runner.h" #include "ipc/ipc_test_base.h" #include "base/command_line.h" @@ -154,7 +155,7 @@ IPC::ChannelHandle IPCTestBase::GetTestChannelHandle() { } scoped_refptr IPCTestBase::task_runner() { - return message_loop_->message_loop_proxy(); + return message_loop_->task_runner(); } scoped_ptr IPCTestBase::CreateChannelFactory( diff --git a/ipc/mojo/async_handle_waiter_unittest.cc b/ipc/mojo/async_handle_waiter_unittest.cc index 38f3bd68e40c..441b4ecd316c 100644 --- a/ipc/mojo/async_handle_waiter_unittest.cc +++ b/ipc/mojo/async_handle_waiter_unittest.cc @@ -5,8 +5,9 @@ #include "ipc/mojo/async_handle_waiter.h" #include "base/bind.h" -#include "base/message_loop/message_loop.h" +#include "base/location.h" #include "base/run_loop.h" +#include "base/single_thread_task_runner.h" #include "base/threading/thread.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/mojo/src/mojo/public/cpp/system/message_pipe.h" @@ -58,7 +59,7 @@ class AsyncHandleWaiterTest : public testing::Test { } void WriteToPipeFromWorker() { - worker_.message_loop_proxy()->PostTask( + worker_.task_runner()->PostTask( FROM_HERE, base::Bind(&AsyncHandleWaiterTest::WriteToPipe, base::Unretained(this))); } diff --git a/ipc/mojo/ipc_channel_mojo.cc b/ipc/mojo/ipc_channel_mojo.cc index 9badfdf5d4b4..e38a7e94ae8e 100644 --- a/ipc/mojo/ipc_channel_mojo.cc +++ b/ipc/mojo/ipc_channel_mojo.cc @@ -293,7 +293,7 @@ ChannelMojo::ChannelMojo(ChannelMojo::Delegate* delegate, // Create MojoBootstrap after all members are set as it touches // ChannelMojo from a different thread. bootstrap_ = MojoBootstrap::Create(handle, mode, this); - if (io_runner == base::MessageLoop::current()->message_loop_proxy()) { + if (io_runner == base::MessageLoop::current()->task_runner()) { InitOnIOThread(delegate); } else { io_runner->PostTask(FROM_HERE, diff --git a/ipc/mojo/ipc_channel_mojo_host.cc b/ipc/mojo/ipc_channel_mojo_host.cc index 28067cf74679..ac914ad2affc 100644 --- a/ipc/mojo/ipc_channel_mojo_host.cc +++ b/ipc/mojo/ipc_channel_mojo_host.cc @@ -5,7 +5,8 @@ #include "ipc/mojo/ipc_channel_mojo_host.h" #include "base/bind.h" -#include "base/message_loop/message_loop.h" +#include "base/location.h" +#include "base/single_thread_task_runner.h" #include "ipc/mojo/ipc_channel_mojo.h" namespace IPC { @@ -97,7 +98,7 @@ ChannelMojoHost::~ChannelMojoHost() { } void ChannelMojoHost::OnClientLaunched(base::ProcessHandle process) { - if (io_task_runner_ == base::MessageLoop::current()->message_loop_proxy()) { + if (io_task_runner_ == base::MessageLoop::current()->task_runner()) { channel_delegate_->OnClientLaunched(process); } else { io_task_runner_->PostTask(FROM_HERE, diff --git a/ipc/mojo/ipc_channel_mojo_unittest.cc b/ipc/mojo/ipc_channel_mojo_unittest.cc index 40187153724a..53c6ecfd04d0 100644 --- a/ipc/mojo/ipc_channel_mojo_unittest.cc +++ b/ipc/mojo/ipc_channel_mojo_unittest.cc @@ -6,11 +6,13 @@ #include "base/base_paths.h" #include "base/files/file.h" -#include "base/message_loop/message_loop.h" +#include "base/location.h" #include "base/path_service.h" #include "base/pickle.h" #include "base/run_loop.h" +#include "base/single_thread_task_runner.h" #include "base/test/test_timeouts.h" +#include "base/thread_task_runner_handle.h" #include "base/threading/thread.h" #include "ipc/ipc_message.h" #include "ipc/ipc_test_base.h" @@ -79,7 +81,8 @@ class ChannelClient { channel_->Close(); base::RunLoop run_loop; - base::MessageLoop::current()->PostTask(FROM_HERE, run_loop.QuitClosure()); + base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + run_loop.QuitClosure()); run_loop.Run(); } diff --git a/ipc/mojo/ipc_message_pipe_reader.cc b/ipc/mojo/ipc_message_pipe_reader.cc index 9dd26a6fc262..35ba7fd63973 100644 --- a/ipc/mojo/ipc_message_pipe_reader.cc +++ b/ipc/mojo/ipc_message_pipe_reader.cc @@ -8,7 +8,8 @@ #include "base/bind_helpers.h" #include "base/location.h" #include "base/logging.h" -#include "base/message_loop/message_loop_proxy.h" +#include "base/single_thread_task_runner.h" +#include "base/thread_task_runner_handle.h" #include "ipc/mojo/async_handle_waiter.h" #include "ipc/mojo/ipc_channel_mojo.h" @@ -221,8 +222,8 @@ void MessagePipeReader::PipeIsReady(MojoResult wait_result) { void MessagePipeReader::DelayedDeleter::operator()( MessagePipeReader* ptr) const { ptr->Close(); - base::MessageLoopProxy::current()->PostTask( - FROM_HERE, base::Bind(&DeleteNow, ptr)); + base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + base::Bind(&DeleteNow, ptr)); } } // namespace internal diff --git a/ipc/sync_socket_unittest.cc b/ipc/sync_socket_unittest.cc index 238f2a889b7f..82ab0cd0992a 100644 --- a/ipc/sync_socket_unittest.cc +++ b/ipc/sync_socket_unittest.cc @@ -5,11 +5,12 @@ #include "base/sync_socket.h" #include -#include #include +#include #include "base/bind.h" -#include "base/message_loop/message_loop.h" +#include "base/location.h" +#include "base/single_thread_task_runner.h" #include "base/threading/thread.h" #include "ipc/ipc_test_base.h" #include "testing/gtest/include/gtest/gtest.h" @@ -227,7 +228,8 @@ TEST_F(SyncSocketTest, DisconnectTest) { // Try to do a blocking read from one of the sockets on the worker thread. char buf[0xff]; size_t received = 1U; // Initialize to an unexpected value. - worker.message_loop()->PostTask(FROM_HERE, + worker.task_runner()->PostTask( + FROM_HERE, base::Bind(&BlockingRead, &pair[0], &buf[0], arraysize(buf), &received)); // Wait for the worker thread to say hello. @@ -257,9 +259,9 @@ TEST_F(SyncSocketTest, BlockingReceiveTest) { // Try to do a blocking read from one of the sockets on the worker thread. char buf[kHelloStringLength] = {0}; size_t received = 1U; // Initialize to an unexpected value. - worker.message_loop()->PostTask(FROM_HERE, - base::Bind(&BlockingRead, &pair[0], &buf[0], - kHelloStringLength, &received)); + worker.task_runner()->PostTask(FROM_HERE, + base::Bind(&BlockingRead, &pair[0], &buf[0], + kHelloStringLength, &received)); // Wait for the worker thread to say hello. char hello[kHelloStringLength] = {0}; diff --git a/ipc/unix_domain_socket_util_unittest.cc b/ipc/unix_domain_socket_util_unittest.cc index a8e9794cd221..57365a5840df 100644 --- a/ipc/unix_domain_socket_util_unittest.cc +++ b/ipc/unix_domain_socket_util_unittest.cc @@ -6,8 +6,10 @@ #include "base/bind.h" #include "base/files/file_path.h" +#include "base/location.h" #include "base/path_service.h" #include "base/posix/eintr_wrapper.h" +#include "base/single_thread_task_runner.h" #include "base/synchronization/waitable_event.h" #include "base/threading/thread.h" #include "base/threading/thread_restrictions.h" @@ -18,7 +20,7 @@ namespace { class SocketAcceptor : public base::MessageLoopForIO::Watcher { public: - SocketAcceptor(int fd, base::MessageLoopProxy* target_thread) + SocketAcceptor(int fd, base::SingleThreadTaskRunner* target_thread) : server_fd_(-1), target_thread_(target_thread), started_watching_event_(false, false), @@ -69,7 +71,7 @@ class SocketAcceptor : public base::MessageLoopForIO::Watcher { void OnFileCanWriteWithoutBlocking(int fd) override {} int server_fd_; - base::MessageLoopProxy* target_thread_; + base::SingleThreadTaskRunner* target_thread_; scoped_ptr watcher_; base::WaitableEvent started_watching_event_; base::WaitableEvent accepted_event_; @@ -103,8 +105,8 @@ class TestUnixSocketConnection { struct stat socket_stat; stat(socket_name_.value().c_str(), &socket_stat); EXPECT_TRUE(S_ISSOCK(socket_stat.st_mode)); - acceptor_.reset(new SocketAcceptor(server_listen_fd_, - worker_.message_loop_proxy().get())); + acceptor_.reset( + new SocketAcceptor(server_listen_fd_, worker_.task_runner().get())); acceptor_->WaitUntilReady(); return true; } -- 2.11.4.GIT