Skip to content
This repository was archived by the owner on Apr 22, 2023. It is now read-only.

Commit 4071815

Browse files
committed
Revert "Re-add top-level v8::Locker"
The locker makes node crash in debug mode sometimes. For example, test/simple/test-repl.js triggers it. This reverts commit 9a6012e. Conflicts: src/node.cc
1 parent 7c02b5a commit 4071815

1 file changed

Lines changed: 24 additions & 30 deletions

File tree

src/node.cc

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2759,39 +2759,33 @@ int Start(int argc, char *argv[]) {
27592759
// Use copy here as to not modify the original argv:
27602760
Init(argc, argv_copy);
27612761

2762-
V8::Initialize();
2763-
Persistent<Context> context;
2764-
{
2765-
Locker locker;
2766-
HandleScope handle_scope;
2767-
2768-
// Create the one and only Context.
2769-
Persistent<Context> context = Context::New();
2770-
Context::Scope context_scope(context);
2771-
2772-
// Use original argv, as we're just copying values out of it.
2773-
Handle<Object> process_l = SetupProcessObject(argc, argv);
2774-
v8_typed_array::AttachBindings(context->Global());
2775-
2776-
// Create all the objects, load modules, do everything.
2777-
// so your next reading stop should be node::Load()!
2778-
Load(process_l);
2779-
2780-
// All our arguments are loaded. We've evaluated all of the scripts. We
2781-
// might even have created TCP servers. Now we enter the main eventloop. If
2782-
// there are no watchers on the loop (except for the ones that were
2783-
// uv_unref'd) then this function exits. As long as there are active
2784-
// watchers, it blocks.
2785-
uv_run(uv_default_loop());
2786-
2787-
EmitExit(process_l);
2788-
#ifndef NDEBUG
2789-
context.Dispose();
2790-
#endif
2791-
}
2762+
v8::V8::Initialize();
2763+
v8::HandleScope handle_scope;
2764+
2765+
// Create the one and only Context.
2766+
Persistent<v8::Context> context = v8::Context::New();
2767+
v8::Context::Scope context_scope(context);
2768+
2769+
// Use original argv, as we're just copying values out of it.
2770+
Handle<Object> process_l = SetupProcessObject(argc, argv);
2771+
v8_typed_array::AttachBindings(context->Global());
2772+
2773+
// Create all the objects, load modules, do everything.
2774+
// so your next reading stop should be node::Load()!
2775+
Load(process_l);
2776+
2777+
// All our arguments are loaded. We've evaluated all of the scripts. We
2778+
// might even have created TCP servers. Now we enter the main eventloop. If
2779+
// there are no watchers on the loop (except for the ones that were
2780+
// uv_unref'd) then this function exits. As long as there are active
2781+
// watchers, it blocks.
2782+
uv_run(uv_default_loop());
2783+
2784+
EmitExit(process_l);
27922785

27932786
#ifndef NDEBUG
27942787
// Clean up.
2788+
context.Dispose();
27952789
V8::Dispose();
27962790
#endif // NDEBUG
27972791

0 commit comments

Comments
 (0)