Skip to content
Permalink
Browse files

src: pass isMainThread into bootstrap/node.js directly

Instead of loading the working binding for the sole purpose of
detecting whether we are inside the main thread unconditionally.

PR-URL: #25017
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information...
joyeecheung authored and addaleax committed Dec 13, 2018
1 parent ee461fe commit b1500d9a7fda6e855850ced5f37e17bbb499df64
Showing with 7 additions and 4 deletions.
  1. +2 −1 lib/internal/bootstrap/node.js
  2. +4 −2 src/node.cc
  3. +1 −1 test/parallel/test-bootstrap-modules.js
@@ -15,6 +15,8 @@
// This file is compiled as if it's wrapped in a function with arguments
// passed by node::LoadEnvironment()
/* global process, bootstrappers, loaderExports, triggerFatalException */
/* global isMainThread */

const {
_setupTraceCategoryState,
_setupNextTick,
@@ -28,7 +30,6 @@ const {
const { internalBinding, NativeModule } = loaderExports;

const exceptionHandlerState = { captureFn: null };
const isMainThread = internalBinding('worker').threadId === 0;

function startup() {
setupTraceCategoryState();
@@ -1267,14 +1267,16 @@ void LoadEnvironment(Environment* env) {
env->process_string(),
FIXED_ONE_BYTE_STRING(isolate, "bootstrappers"),
FIXED_ONE_BYTE_STRING(isolate, "loaderExports"),
FIXED_ONE_BYTE_STRING(isolate, "triggerFatalException")};
FIXED_ONE_BYTE_STRING(isolate, "triggerFatalException"),
FIXED_ONE_BYTE_STRING(isolate, "isMainThread")};
std::vector<Local<Value>> node_args = {
process,
bootstrapper,
loader_exports.ToLocalChecked(),
env->NewFunctionTemplate(FatalException)
->GetFunction(context)
.ToLocalChecked()};
.ToLocalChecked(),
Boolean::New(isolate, env->is_main_thread())};

if (ExecuteBootstrapper(
env, "internal/bootstrap/node", &node_params, &node_args)
@@ -9,7 +9,7 @@ const common = require('../common');
const assert = require('assert');

const isMainThread = common.isMainThread;
const kMaxModuleCount = isMainThread ? 61 : 82;
const kMaxModuleCount = isMainThread ? 60 : 82;

assert(list.length <= kMaxModuleCount,
`Total length: ${list.length}\n` + list.join('\n')

0 comments on commit b1500d9

Please sign in to comment.
You can’t perform that action at this time.