From 407181538b5193f6810bf06a2056a200265c0e93 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Fri, 30 Mar 2012 21:50:15 +0200 Subject: [PATCH] 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 9a6012edd9330296b7476bc6b7fbda2cd5c8165d. Conflicts: src/node.cc --- src/node.cc | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/src/node.cc b/src/node.cc index 6d2b73b98c7..14e0849a70f 100644 --- a/src/node.cc +++ b/src/node.cc @@ -2759,39 +2759,33 @@ int Start(int argc, char *argv[]) { // Use copy here as to not modify the original argv: Init(argc, argv_copy); - V8::Initialize(); - Persistent context; - { - Locker locker; - HandleScope handle_scope; + v8::V8::Initialize(); + v8::HandleScope handle_scope; - // Create the one and only Context. - Persistent context = Context::New(); - Context::Scope context_scope(context); + // Create the one and only Context. + Persistent context = v8::Context::New(); + v8::Context::Scope context_scope(context); - // Use original argv, as we're just copying values out of it. - Handle process_l = SetupProcessObject(argc, argv); - v8_typed_array::AttachBindings(context->Global()); + // Use original argv, as we're just copying values out of it. + Handle process_l = SetupProcessObject(argc, argv); + v8_typed_array::AttachBindings(context->Global()); - // Create all the objects, load modules, do everything. - // so your next reading stop should be node::Load()! - Load(process_l); + // Create all the objects, load modules, do everything. + // so your next reading stop should be node::Load()! + Load(process_l); - // All our arguments are loaded. We've evaluated all of the scripts. We - // might even have created TCP servers. Now we enter the main eventloop. If - // there are no watchers on the loop (except for the ones that were - // uv_unref'd) then this function exits. As long as there are active - // watchers, it blocks. - uv_run(uv_default_loop()); + // All our arguments are loaded. We've evaluated all of the scripts. We + // might even have created TCP servers. Now we enter the main eventloop. If + // there are no watchers on the loop (except for the ones that were + // uv_unref'd) then this function exits. As long as there are active + // watchers, it blocks. + uv_run(uv_default_loop()); - EmitExit(process_l); -#ifndef NDEBUG - context.Dispose(); -#endif - } + EmitExit(process_l); #ifndef NDEBUG // Clean up. + context.Dispose(); V8::Dispose(); #endif // NDEBUG