summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/api/environment.cc2
-rw-r--r--src/env.cc2
-rw-r--r--src/env.h2
-rw-r--r--src/node.cc51
-rw-r--r--src/node_worker.cc2
5 files changed, 30 insertions, 29 deletions
diff --git a/src/api/environment.cc b/src/api/environment.cc
index b7a629340d..35d93f1cc8 100644
--- a/src/api/environment.cc
+++ b/src/api/environment.cc
@@ -225,7 +225,7 @@ Environment* CreateEnvironment(IsolateData* isolate_data,
static_cast<Environment::Flags>(Environment::kIsMainThread |
Environment::kOwnsProcessState |
Environment::kOwnsInspector));
- env->Start(per_process::v8_is_profiling);
+ env->InitializeLibuv(per_process::v8_is_profiling);
env->ProcessCliArgs(args, exec_args);
return env;
}
diff --git a/src/env.cc b/src/env.cc
index ba3e63ad8d..fa98efabcc 100644
--- a/src/env.cc
+++ b/src/env.cc
@@ -320,7 +320,7 @@ Environment::~Environment() {
}
}
-void Environment::Start(bool start_profiler_idle_notifier) {
+void Environment::InitializeLibuv(bool start_profiler_idle_notifier) {
HandleScope handle_scope(isolate());
Context::Scope context_scope(context());
diff --git a/src/env.h b/src/env.h
index b269982a0b..206f125efe 100644
--- a/src/env.h
+++ b/src/env.h
@@ -675,7 +675,7 @@ class Environment {
uint64_t thread_id = kNoThreadId);
~Environment();
- void Start(bool start_profiler_idle_notifier);
+ void InitializeLibuv(bool start_profiler_idle_notifier);
v8::MaybeLocal<v8::Object> ProcessCliArgs(
const std::vector<std::string>& args,
const std::vector<std::string>& exec_args);
diff --git a/src/node.cc b/src/node.cc
index 94947cb34a..891d4d0b3a 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -620,10 +620,10 @@ int ProcessGlobalArgs(std::vector<std::string>* args,
static std::atomic_bool init_called{false};
-int Init(std::vector<std::string>* argv,
- std::vector<std::string>* exec_argv,
- std::vector<std::string>* errors) {
- // Make sure Init() is called only once.
+int InitializeNodeWithArgs(std::vector<std::string>* argv,
+ std::vector<std::string>* exec_argv,
+ std::vector<std::string>* errors) {
+ // Make sure InitializeNodeWithArgs() is called only once.
CHECK(!init_called.exchange(true));
// Register built-in modules
@@ -734,7 +734,7 @@ void Init(int* argc,
// This (approximately) duplicates some logic that has been moved to
// node::Start(), with the difference that here we explicitly call `exit()`.
- int exit_code = Init(&argv_, &exec_argv_, &errors);
+ int exit_code = InitializeNodeWithArgs(&argv_, &exec_argv_, &errors);
for (const std::string& error : errors)
fprintf(stderr, "%s: %s\n", argv_.at(0).c_str(), error.c_str());
@@ -769,9 +769,10 @@ void RunBeforeExit(Environment* env) {
EmitBeforeExit(env);
}
-inline int Start(Isolate* isolate, IsolateData* isolate_data,
- const std::vector<std::string>& args,
- const std::vector<std::string>& exec_args) {
+inline int StartNodeWithIsolate(Isolate* isolate,
+ IsolateData* isolate_data,
+ const std::vector<std::string>& args,
+ const std::vector<std::string>& exec_args) {
HandleScope handle_scope(isolate);
Local<Context> context = NewContext(isolate);
Context::Scope context_scope(context);
@@ -782,7 +783,7 @@ inline int Start(Isolate* isolate, IsolateData* isolate_data,
static_cast<Environment::Flags>(Environment::kIsMainThread |
Environment::kOwnsProcessState |
Environment::kOwnsInspector));
- env.Start(per_process::v8_is_profiling);
+ env.InitializeLibuv(per_process::v8_is_profiling);
env.ProcessCliArgs(args, exec_args);
#if HAVE_INSPECTOR && NODE_USE_V8_PLATFORM
@@ -858,25 +859,15 @@ exit:
return exit_code;
}
-inline int Start(uv_loop_t* event_loop,
- const std::vector<std::string>& args,
- const std::vector<std::string>& exec_args) {
+inline int StartNodeWithLoopAndArgs(uv_loop_t* event_loop,
+ const std::vector<std::string>& args,
+ const std::vector<std::string>& exec_args) {
std::unique_ptr<ArrayBufferAllocator, decltype(&FreeArrayBufferAllocator)>
allocator(CreateArrayBufferAllocator(), &FreeArrayBufferAllocator);
Isolate* const isolate = NewIsolate(allocator.get(), event_loop);
if (isolate == nullptr)
return 12; // Signal internal error.
- if (per_process::cli_options->print_version) {
- printf("%s\n", NODE_VERSION);
- return 0;
- }
-
- if (per_process::cli_options->print_v8_help) {
- V8::SetFlagsFromString("--help", 6); // Doesn't return.
- UNREACHABLE();
- }
-
int exit_code;
{
Locker locker(isolate);
@@ -894,7 +885,7 @@ inline int Start(uv_loop_t* event_loop,
isolate->GetHeapProfiler()->StartTrackingHeapObjects(true);
}
exit_code =
- Start(isolate, isolate_data.get(), args, exec_args);
+ StartNodeWithIsolate(isolate, isolate_data.get(), args, exec_args);
}
isolate->Dispose();
@@ -926,12 +917,22 @@ int Start(int argc, char** argv) {
std::vector<std::string> errors;
// This needs to run *before* V8::Initialize().
{
- const int exit_code = Init(&args, &exec_args, &errors);
+ const int exit_code = InitializeNodeWithArgs(&args, &exec_args, &errors);
for (const std::string& error : errors)
fprintf(stderr, "%s: %s\n", args.at(0).c_str(), error.c_str());
if (exit_code != 0) return exit_code;
}
+ if (per_process::cli_options->print_version) {
+ printf("%s\n", NODE_VERSION);
+ return 0;
+ }
+
+ if (per_process::cli_options->print_v8_help) {
+ V8::SetFlagsFromString("--help", 6); // Doesn't return.
+ UNREACHABLE();
+ }
+
#if HAVE_OPENSSL
{
std::string extra_ca_certs;
@@ -953,7 +954,7 @@ int Start(int argc, char** argv) {
performance::performance_v8_start = PERFORMANCE_NOW();
per_process::v8_initialized = true;
const int exit_code =
- Start(uv_default_loop(), args, exec_args);
+ StartNodeWithLoopAndArgs(uv_default_loop(), args, exec_args);
per_process::v8_initialized = false;
V8::Dispose();
diff --git a/src/node_worker.cc b/src/node_worker.cc
index a6a95acf07..a111c54223 100644
--- a/src/node_worker.cc
+++ b/src/node_worker.cc
@@ -284,7 +284,7 @@ void Worker::Run() {
env_->set_abort_on_uncaught_exception(false);
env_->set_worker_context(this);
- env_->Start(profiler_idle_notifier_started_);
+ env_->InitializeLibuv(profiler_idle_notifier_started_);
env_->ProcessCliArgs(std::vector<std::string>{},
std::move(exec_argv_));
}