From fb888f037d43148f847e255714e3c07fea3aa469 Mon Sep 17 00:00:00 2001 From: Matt Falkenhagen Date: Thu, 21 Nov 2019 00:30:02 +0000 Subject: [PATCH] Convert ipc to Once/Repeating variants of Bind/Callback. (pt 2) Bug: 1007797 Change-Id: I7ccb2694f2087e4af502d343b20347bcc56ade61 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1925829 Reviewed-by: Ken Rockot Commit-Queue: Matt Falkenhagen Cr-Commit-Position: refs/heads/master@{#717370} --- ipc/ipc_cpu_perftest.cc | 12 ++++++---- ipc/ipc_message_pipe_reader.cc | 12 +++++----- ipc/ipc_mojo_bootstrap.cc | 4 ++-- ipc/ipc_mojo_perftest.cc | 42 +++++++++++++++++++--------------- ipc/ipc_security_test_util.cc | 4 ++-- ipc/ipc_sync_message_filter.cc | 4 ++-- ipc/run_all_unittests.cc | 2 +- 7 files changed, 43 insertions(+), 37 deletions(-) diff --git a/ipc/ipc_cpu_perftest.cc b/ipc/ipc_cpu_perftest.cc index c5cd5c44ffe1c7..d8a5242972bf17 100644 --- a/ipc/ipc_cpu_perftest.cc +++ b/ipc/ipc_cpu_perftest.cc @@ -84,7 +84,7 @@ class PerfCpuLogger { MULTIPROCESS_TEST_MAIN(MojoPerfTestClientTestChildMain) { MojoPerfTestClient client; int rv = mojo::core::test::MultiprocessTestHelper::RunClientMain( - base::Bind(&MojoPerfTestClient::Run, base::Unretained(&client)), + base::BindOnce(&MojoPerfTestClient::Run, base::Unretained(&client)), true /* pass_pipe_ownership_to_main */); base::RunLoop run_loop; @@ -286,8 +286,9 @@ class MojoSteadyPingPongTest : public mojo::core::test::MojoTestBase { params_ = params; payload_ = std::string(params.message_size, 'a'); - ping_receiver_->Ping("hello", base::Bind(&MojoSteadyPingPongTest::OnHello, - base::Unretained(this))); + ping_receiver_->Ping("hello", + base::BindOnce(&MojoSteadyPingPongTest::OnHello, + base::Unretained(this))); base::RunLoop run_loop; quit_closure_ = run_loop.QuitWhenIdleClosure(); run_loop.Run(); @@ -361,8 +362,9 @@ class MojoSteadyPingPongTest : public mojo::core::test::MojoTestBase { } void SendPing() { - ping_receiver_->Ping(payload_, base::Bind(&MojoSteadyPingPongTest::OnPong, - base::Unretained(this))); + ping_receiver_->Ping(payload_, + base::BindOnce(&MojoSteadyPingPongTest::OnPong, + base::Unretained(this))); } static int RunPingPongClient(MojoHandle mp) { diff --git a/ipc/ipc_message_pipe_reader.cc b/ipc/ipc_message_pipe_reader.cc index a78972c6179007..455095876e0862 100644 --- a/ipc/ipc_message_pipe_reader.cc +++ b/ipc/ipc_message_pipe_reader.cc @@ -29,12 +29,12 @@ MessagePipeReader::MessagePipeReader( : delegate_(delegate), sender_(std::move(sender)), receiver_(this, std::move(receiver)) { - sender_.set_disconnect_handler(base::Bind(&MessagePipeReader::OnPipeError, - base::Unretained(this), - MOJO_RESULT_FAILED_PRECONDITION)); - receiver_.set_disconnect_handler(base::Bind(&MessagePipeReader::OnPipeError, - base::Unretained(this), - MOJO_RESULT_FAILED_PRECONDITION)); + sender_.set_disconnect_handler(base::BindRepeating( + &MessagePipeReader::OnPipeError, base::Unretained(this), + MOJO_RESULT_FAILED_PRECONDITION)); + receiver_.set_disconnect_handler(base::BindRepeating( + &MessagePipeReader::OnPipeError, base::Unretained(this), + MOJO_RESULT_FAILED_PRECONDITION)); } MessagePipeReader::~MessagePipeReader() { diff --git a/ipc/ipc_mojo_bootstrap.cc b/ipc/ipc_mojo_bootstrap.cc index c86fcca7c91aa5..bf5a59a1a4a953 100644 --- a/ipc/ipc_mojo_bootstrap.cc +++ b/ipc/ipc_mojo_bootstrap.cc @@ -170,8 +170,8 @@ class ChannelAssociatedGroupController task_runner_)); connector_->set_incoming_receiver(&dispatcher_); connector_->set_connection_error_handler( - base::Bind(&ChannelAssociatedGroupController::OnPipeError, - base::Unretained(this))); + base::BindRepeating(&ChannelAssociatedGroupController::OnPipeError, + base::Unretained(this))); connector_->set_enforce_errors_from_incoming_receiver(false); connector_->SetWatcherHeapProfilerTag("IPC Channel"); if (quota_checker_) diff --git a/ipc/ipc_mojo_perftest.cc b/ipc/ipc_mojo_perftest.cc index 94b49205f623da..f37a145f046e68 100644 --- a/ipc/ipc_mojo_perftest.cc +++ b/ipc/ipc_mojo_perftest.cc @@ -270,7 +270,7 @@ TEST_F(MojoChannelPerfTest, ChannelProxySyncPing) { MULTIPROCESS_TEST_MAIN(MojoPerfTestClientTestChildMain) { MojoPerfTestClient client; int rv = mojo::core::test::MultiprocessTestHelper::RunClientMain( - base::Bind(&MojoPerfTestClient::Run, base::Unretained(&client)), + base::BindOnce(&MojoPerfTestClient::Run, base::Unretained(&client)), true /* pass_pipe_ownership_to_main */); base::RunLoop run_loop; @@ -295,8 +295,9 @@ class MojoInterfacePerfTest : public mojo::core::test::MojoTestBase { LockThreadAffinity thread_locker(kSharedCore); std::vector params = GetDefaultTestParams(); for (size_t i = 0; i < params.size(); i++) { - ping_receiver_->Ping("hello", base::Bind(&MojoInterfacePerfTest::OnPong, - base::Unretained(this))); + ping_receiver_->Ping("hello", + base::BindOnce(&MojoInterfacePerfTest::OnPong, + base::Unretained(this))); message_count_ = count_down_ = params[i].message_count(); payload_ = std::string(params[i].message_size(), 'a'); @@ -336,8 +337,9 @@ class MojoInterfacePerfTest : public mojo::core::test::MojoTestBase { perf_logger_.reset(); base::RunLoop::QuitCurrentWhenIdleDeprecated(); } else { - ping_receiver_->Ping(payload_, base::Bind(&MojoInterfacePerfTest::OnPong, - base::Unretained(this))); + ping_receiver_->Ping(payload_, + base::BindOnce(&MojoInterfacePerfTest::OnPong, + base::Unretained(this))); } } @@ -441,8 +443,8 @@ class MojoInterfacePassingPerfTest : public mojo::core::test::MojoTestBase { LockThreadAffinity thread_locker(kSharedCore); for (size_t i = 0; i < params.size(); ++i) { driver_remote_->Init( - base::Bind(&MojoInterfacePassingPerfTest::OnInitCallback, - base::Unretained(this))); + base::BindOnce(&MojoInterfacePassingPerfTest::OnInitCallback, + base::Unretained(this))); rounds_ = count_down_ = params[i].rounds(); num_interfaces_ = params[i].num_interfaces(); @@ -480,8 +482,8 @@ class MojoInterfacePassingPerfTest : public mojo::core::test::MojoTestBase { driver_remote_->GetAssociatedPingReceiver( std::move(receivers), - base::Bind(&MojoInterfacePassingPerfTest::OnGetReceiverCallback, - base::Unretained(this))); + base::BindOnce(&MojoInterfacePassingPerfTest::OnGetReceiverCallback, + base::Unretained(this))); } else { std::vector> remotes(num_interfaces_); @@ -495,8 +497,8 @@ class MojoInterfacePassingPerfTest : public mojo::core::test::MojoTestBase { driver_remote_->GetPingReceiver( std::move(receivers), - base::Bind(&MojoInterfacePassingPerfTest::OnGetReceiverCallback, - base::Unretained(this))); + base::BindOnce(&MojoInterfacePassingPerfTest::OnGetReceiverCallback, + base::Unretained(this))); } } @@ -771,10 +773,12 @@ class CallbackPerfTest : public testing::Test { void RunSingleThreadNoPostTaskPingPongServer() { LockThreadAffinity thread_locker(kSharedCore); std::vector params = GetDefaultTestParams(); - base::Callback&)> - ping = base::Bind(&CallbackPerfTest::SingleThreadPingNoPostTask, - base::Unretained(this)); + base::RepeatingCallback)> + ping = + base::BindRepeating(&CallbackPerfTest::SingleThreadPingNoPostTask, + base::Unretained(this)); for (size_t i = 0; i < params.size(); i++) { payload_ = std::string(params[i].message_size(), 'a'); std::string test_name = @@ -783,8 +787,8 @@ class CallbackPerfTest : public testing::Test { perf_logger_.reset(new base::PerfTimeLogger(test_name.c_str())); for (int j = 0; j < params[i].message_count(); ++j) { ping.Run(payload_, j, - base::Bind(&CallbackPerfTest::SingleThreadPongNoPostTask, - base::Unretained(this))); + base::BindOnce(&CallbackPerfTest::SingleThreadPongNoPostTask, + base::Unretained(this))); } perf_logger_.reset(); } @@ -793,8 +797,8 @@ class CallbackPerfTest : public testing::Test { void SingleThreadPingNoPostTask( const std::string& value, int i, - const base::Callback& pong) { - pong.Run(value, i); + base::OnceCallback pong) { + std::move(pong).Run(value, i); } void SingleThreadPongNoPostTask(const std::string& value, int i) {} diff --git a/ipc/ipc_security_test_util.cc b/ipc/ipc_security_test_util.cc index 4ae5a06096de20..5b1ece74bcdaf5 100644 --- a/ipc/ipc_security_test_util.cc +++ b/ipc/ipc_security_test_util.cc @@ -14,11 +14,11 @@ namespace IPC { void IpcSecurityTestUtil::PwnMessageReceived(ChannelProxy* channel, const IPC::Message& message) { base::RunLoop run_loop; - base::Closure inject_message = base::Bind( + base::OnceClosure inject_message = base::BindOnce( base::IgnoreResult(&IPC::ChannelProxy::Context::OnMessageReceived), channel->context(), message); channel->context()->ipc_task_runner()->PostTaskAndReply( - FROM_HERE, inject_message, run_loop.QuitClosure()); + FROM_HERE, std::move(inject_message), run_loop.QuitClosure()); run_loop.Run(); } diff --git a/ipc/ipc_sync_message_filter.cc b/ipc/ipc_sync_message_filter.cc index e2e7d4e474c95b..018ed83d42182d 100644 --- a/ipc/ipc_sync_message_filter.cc +++ b/ipc/ipc_sync_message_filter.cc @@ -73,8 +73,8 @@ bool SyncMessageFilter::Send(Message* message) { bool shutdown = false; scoped_refptr registry = mojo::SyncHandleRegistry::current(); - auto on_shutdown_callback = base::Bind(&OnEventReady, &shutdown); - auto on_done_callback = base::Bind(&OnEventReady, &done); + auto on_shutdown_callback = base::BindRepeating(&OnEventReady, &shutdown); + auto on_done_callback = base::BindRepeating(&OnEventReady, &done); registry->RegisterEvent(shutdown_event_, on_shutdown_callback); registry->RegisterEvent(&done_event, on_done_callback); diff --git a/ipc/run_all_unittests.cc b/ipc/run_all_unittests.cc index 53e294f66becfa..3a57bddedeab25 100644 --- a/ipc/run_all_unittests.cc +++ b/ipc/run_all_unittests.cc @@ -21,5 +21,5 @@ int main(int argc, char** argv) { return base::LaunchUnitTests( argc, argv, - base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite))); + base::BindOnce(&base::TestSuite::Run, base::Unretained(&test_suite))); }