Hi all,

I'm in the process of porting my embedded v8 from a very old version to 
current stable. I have this code that is called from JNI from a different 
thread than the one that initially created the Isolate and the initial 
context:

v8::Locker l (isolate);
Isolate::Scope isolateScope(isolate);
Context::Scope 
context_scope(*reinterpret_cast<Local<Context>*>(context->_context));

HandleScope scope (isolate);
TryCatch trycatch;

// Get pointers to persistent objects created by 'new Persistent<T>(_local)'
WrapPersistentObj* wo = (WrapPersistentObj*)thisPtr;
Local<Object> thisObj = (*reinterpret_cast<Local<Object>*>(&wo->obj));
WrapPersistentFunc* ws = (WrapPersistentFunc*)jsCbPtr;
Local<Function> callbackP = Local<Function>::New(isolate, 
*reinterpret_cast<Local<Function>*>(&ws->callbackFunc));
int argcount = 0;
Handle<Value> argarray[] = { };

Handle<Value> result = callbackP->Call(thisObj, argcount, argarray);

The Call method crashes with this message in debug build (doesn't crash in 
release build):

11-10 12:08:25.665  32122    32162                     v8  E  #

11-10 12:08:25.665  32122    32162                     v8  E  # Fatal error 
in ../../src/parsing/parser.cc, line 730

11-10 12:08:25.665  32122    32162                     v8  E  #

11-10 12:08:25.665  32122    32162                     v8  E  Check failed: 
ThreadId::Current().Equals(info->isolate()->thread_id()).

11-10 12:08:25.665  32122    32162                     v8  E  #

11-10 12:08:25.667  32122    32162                   libc  F  Fatal signal 
4 (SIGILL), code 1, fault addr 0x997d2f98 in tid 32162 (V8Engine)

11-10 12:08:25.670   271      271                          W  debuggerd: 
handling request: pid=32122 uid=10116 gid=10116 tid=32162

11-10 12:08:25.704  32212    32212                  DEBUG  F  *** *** *** 
*** *** *** *** *** *** *** *** *** *** *** *** ***


All access to the Isolate in all parts of the app is protected by Locker 
instances, so I'm not sure where this comes from.


Any help would be appreciated.


Thanks and best,

Kevin

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
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 v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to