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

Unified Diff: mojo/public/cpp/application/run_application.h

Issue 2008543004: Add RunMainApplication()/TerminateMainApplication() for use in MojoMain(). (Closed) Base URL: https://github.com/domokit/mojo.git@work796_run_app_returns
Patch Set: 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: mojo/public/cpp/application/run_application.h
diff --git a/mojo/public/cpp/application/run_application.h b/mojo/public/cpp/application/run_application.h
index 5bfbbd57f2cde6299567585c0a36dd0ad8053aae..3f323d9c685cadbade0a9941f0e78bb2e56f0523 100644
--- a/mojo/public/cpp/application/run_application.h
+++ b/mojo/public/cpp/application/run_application.h
@@ -12,38 +12,40 @@ namespace mojo {
class ApplicationImplBase;
-// Sets up a message (run) loop and runs the provided application
-// implementation. The return value will be the one provided to
-// |TerminateApplication()|.
+// |RunMainApplication()| and |RunApplication()| set up a message (run) loop and
+// run the provided application implementation. |RunMainApplication()| should be
+// used on the application's main thread (e.g., from |MojoMain()|) and may do
+// additional initialization. (In the case of the "standalone" implementation,
+// the two are equivalent.) The return value will be the one provided to
+// |TerminateMainApplication()| or |TerminateApplication()|, respectively.
//
// Typical use (where |MyApplicationImpl| is an implementation of
// |ApplicationImplBase|):
//
// MojoResult MojoMain(MojoHandle application_request_handle) {
// MyApplicationImpl my_app;
-// return mojo::RunApplication(application_request_handle, &my_app);
+// return mojo::RunMainApplication(application_request_handle, &my_app);
// }
//
-// Note that this may actually be used on any thread (that is not already
+// |RunApplication()| may be used on secondary threads (that are not already
// running a message loop of some sort).
//
// |*application_impl| must remain alive until the message loop starts running
// (thus it may own itself).
-//
-// TODO(vtl): Maybe this should be like |Environment|, with different possible
-// implementations (e.g., "standalone" vs "chromium"). However,
-// |ApplicationRunnerChromium| currently has additional goop specific to the
-// main thread. Probably we should have additional "RunMainApplication()" and
-// "TerminateMainApplication()" functions.
+MojoResult RunMainApplication(MojoHandle application_request_handle,
+ ApplicationImplBase* application_impl);
MojoResult RunApplication(MojoHandle application_request_handle,
ApplicationImplBase* application_impl);
-// Terminates the currently-running application. This may only be called from
-// "inside" |RunApplication()| (i.e., it is on the stack, which means that the
-// message loop is running). This will cause |RunApplication()| to return "soon"
+// |TerminateMainApplication()| and |TerminateApplication()| terminate the
+// application that is running on the current thread. They may only be called
+// from "inside" |RunMainApplication()| and |RunApplication()| respectively
+// (i.e., |Run[Main]Application()| is on the stack, which means that the message
+// loop is running). They will cause |Run[Main]Application()| to return "soon"
// (assuming the message loop is not blocked processing some task), with return
-// value |result|. This may cause queued work to *not* be executed. This should
-// be executed at most once (per |RunApplication()|).
+// value |result|. They may cause queued work to *not* be executed. They should
+// be executed at most once (per |Run[Main]Application()|).
+void TerminateMainApplication(MojoResult result);
void TerminateApplication(MojoResult result);
} // namespace mojo
« no previous file with comments | « mojo/public/cpp/application/lib/run_application.cc ('k') | mojo/public/cpp/bindings/tests/versioning_test_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698