From f1bf9e5fc941ba7f342c6d378fbde9782574ab0f Mon Sep 17 00:00:00 2001 From: Alex Deymo Date: Thu, 4 Feb 2016 13:52:56 -0800 Subject: [PATCH] metricsd: Create a brillo::MessageLoop. brillo::BinderWatcher now requires a brillo::MessageLoop, so this patch creates a brillo::BaseMessageLoop and passes it when creating the brillo::BinderWatcher. Bug: 26356682 TEST=Deployed metricsd to edison-eng. Change-Id: I6a9e592623faf231205ae44e479bec2b873b8898 --- metricsd/uploader/metricsd_service_runner.cc | 7 +++++-- metricsd/uploader/metricsd_service_runner.h | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/metricsd/uploader/metricsd_service_runner.cc b/metricsd/uploader/metricsd_service_runner.cc index 5a759d35a..4361cac29 100644 --- a/metricsd/uploader/metricsd_service_runner.cc +++ b/metricsd/uploader/metricsd_service_runner.cc @@ -20,6 +20,7 @@ #include #include +#include #include #include "uploader/bn_metricsd_impl.h" @@ -40,15 +41,17 @@ void MetricsdServiceRunner::Run() { CHECK(status == android::OK) << "Metricsd service registration failed"; message_loop_for_io_.reset(new base::MessageLoopForIO); + message_loop_.reset(new brillo::BaseMessageLoop(message_loop_for_io_.get())); - brillo::BinderWatcher watcher; + brillo::BinderWatcher watcher(message_loop_.get()); CHECK(watcher.Init()) << "failed to initialize the binder file descriptor " << "watcher"; - message_loop_for_io_->Run(); + message_loop_->Run(); // Delete the message loop here as it needs to be deconstructed in the thread // it is attached to. + message_loop_.reset(); message_loop_for_io_.reset(); } diff --git a/metricsd/uploader/metricsd_service_runner.h b/metricsd/uploader/metricsd_service_runner.h index 1715de0fe..f5dad21b2 100644 --- a/metricsd/uploader/metricsd_service_runner.h +++ b/metricsd/uploader/metricsd_service_runner.h @@ -21,6 +21,7 @@ #include #include +#include #include "uploader/crash_counters.h" @@ -39,6 +40,7 @@ class MetricsdServiceRunner { void Run(); std::unique_ptr message_loop_for_io_; + std::unique_ptr message_loop_; std::unique_ptr thread_; std::shared_ptr counters_;