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

Unified Diff: mojo/shell/dynamic_service_runner.h

Issue 691653002: Factor out loading & running of DSOs (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Review nits Created 6 years, 2 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
« no previous file with comments | « mojo/shell/app_child_process.cc ('k') | mojo/shell/dynamic_service_runner.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/shell/dynamic_service_runner.h
diff --git a/mojo/shell/dynamic_service_runner.h b/mojo/shell/dynamic_service_runner.h
index aa392f853097a47283e97f9b7dd43cc9274f6420..3c208c87b40a3bbc3c73f2512be9c41a938ca58d 100644
--- a/mojo/shell/dynamic_service_runner.h
+++ b/mojo/shell/dynamic_service_runner.h
@@ -7,6 +7,7 @@
#include "base/callback_forward.h"
#include "base/memory/scoped_ptr.h"
+#include "base/native_library.h"
#include "mojo/public/cpp/system/core.h"
namespace base {
@@ -30,6 +31,15 @@ class DynamicServiceRunner {
virtual void Start(const base::FilePath& app_path,
ScopedMessagePipeHandle service_handle,
const base::Closure& app_completed_callback) = 0;
+
+ // Loads the service in the DSO specificed by |app_path| and prepares it for
+ // execution. Runs the DSO's exported function MojoMain().
+ // The NativeLibrary is returned and ownership transferred to the caller.
+ // This is so if it is unloaded at all, this can be done safely after this
+ // thread is destroyed and any thread-local destructors have been executed.
+ static base::NativeLibrary LoadAndRunService(
+ const base::FilePath& app_path,
+ ScopedMessagePipeHandle service_handle);
};
class DynamicServiceRunnerFactory {
« no previous file with comments | « mojo/shell/app_child_process.cc ('k') | mojo/shell/dynamic_service_runner.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698