Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Unified Diff: services/native_support/main.cc

Issue 2015643002: Add (optional) options to Run[Main]Application(). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: doh Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: services/native_support/main.cc
diff --git a/services/native_support/main.cc b/services/native_support/main.cc
index 912ebc63030946580648a13dd45d4fd9063b14dc..e174a3126fa72b3a2b7dc39e5ffb06d9b63781b5 100644
--- a/services/native_support/main.cc
+++ b/services/native_support/main.cc
@@ -6,9 +6,10 @@
#include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop.h"
#include "base/threading/sequenced_worker_pool.h"
-#include "mojo/application/application_runner_chromium.h"
+#include "mojo/application/run_application_options_chromium.h"
#include "mojo/public/c/system/main.h"
-#include "mojo/public/cpp/application/application_delegate.h"
+#include "mojo/public/cpp/application/application_impl_base.h"
+#include "mojo/public/cpp/application/run_application.h"
#include "mojo/public/cpp/application/service_provider_impl.h"
#include "mojo/services/native_support/interfaces/process.mojom.h"
#include "services/native_support/process_impl.h"
@@ -18,17 +19,18 @@ namespace native_support {
// TODO(vtl): Having to manually choose an arbitrary number is dumb.
const size_t kMaxWorkerThreads = 16;
-class NativeSupportApp : public mojo::ApplicationDelegate {
+class NativeSupportApp : public mojo::ApplicationImplBase {
public:
NativeSupportApp() {}
~NativeSupportApp() override {
- if (worker_pool_)
- worker_pool_->Shutdown();
+ // TODO(vtl): Doing this here is a bit of a hack, but we may not
+ // consistently call |OnQuit()|.
+ OnQuit();
}
private:
- // |mojo::ApplicationDelegate| override:
- bool ConfigureIncomingConnection(
+ // |mojo::ApplicationImplBase| overrides:
+ bool OnAcceptConnection(
mojo::ServiceProviderImpl* service_provider_impl) override {
service_provider_impl->AddService<Process>([this](
const mojo::ConnectionContext& connection_context,
@@ -42,6 +44,13 @@ class NativeSupportApp : public mojo::ApplicationDelegate {
return true;
}
+ void OnQuit() override {
+ if (worker_pool_) {
+ worker_pool_->Shutdown();
+ worker_pool_ = nullptr;
+ }
+ }
+
scoped_refptr<base::SequencedWorkerPool> worker_pool_;
DISALLOW_COPY_AND_ASSIGN(NativeSupportApp);
@@ -50,9 +59,9 @@ class NativeSupportApp : public mojo::ApplicationDelegate {
} // namespace native_support
MojoResult MojoMain(MojoHandle application_request) {
- mojo::ApplicationRunnerChromium runner(
- new native_support::NativeSupportApp());
+ native_support::NativeSupportApp native_support_app;
// We need an I/O message loop, since we'll want to watch FDs.
- runner.set_message_loop_type(base::MessageLoop::TYPE_IO);
- return runner.Run(application_request);
+ mojo::RunApplicationOptionsChromium options(base::MessageLoop::TYPE_IO);
+ return mojo::RunMainApplication(application_request, &native_support_app,
+ &options);
}

Powered by Google App Engine
This is Rietveld 408576698