On Wed, Mar 26, 2014 at 1:05 AM, Kevin Ingwersen
<[email protected]> wrote:
> Hey.
>
> When I create a custom isolate, and then call V8::Dispose(), I get a big
> error:
>
> #
> # Fatal error in ../../deps/v8/src/isolate.h, line 456
> # CHECK(isolate != __null) failed
> #
>
> ==== C stack trace ===============================
>
> 1: ??
> 2: ??
> 3: ??
> 4: ??
> 5: ??
> 6: ??
> 7: ??
> 8: ??
> Process 24211 stopped
> * thread #2: tid = 0x3d7156, 0x0000000100836755
> node`v8::internal::OS::DebugBreak() + 5 at platform-posix.cc:294, stop reason
> = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
> frame #0: 0x0000000100836755 node`v8::internal::OS::DebugBreak() + 5 at
> platform-posix.cc:294
> 291 #else
> 292 #error Unsupported host architecture.
> 293 #endif
> -> 294 }
> 295
> 296
> 297 //
> ----------------------------------------------------------------------------
>
> I am initializing my isolate with:
>
> v8::Isolate *isl = v8::Isolate::New();
> isl->Enter();
>
> Then the code runs, and at the bottom:
>
> node_isolate->Exit();
> node_isolate->Dispose();
>
> A while after is the V8::Dispose(). When i comment this call out, the
> programm exits just as I expected. Otherwise, it crashes with the posted
> bunch above. What is the reason for this?
>
> Kind regards, Ingwie.
There is still something that uses the isolate. Make sure you use
proper scoping in your C++ code, i.e.:
CHECK(V8::Initialize() == true);
Isolate* isolate = Isolate::New();
{
Isolate::Scope isolate_scope(isolate);
HandleScope handle_scope(isolate);
Local<Context> = Context::New(...);
CHECK(context.IsEmpty() == false);
{
Context::Scope context_scope(context);
// etc.
}
}
CHECK(V8::Dispose() == true);
--
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.