On Tue, Jul 6, 2010 at 10:06 AM, Chandru <[email protected]> wrote: > I have a C++ which when invoked from JS will start a new thread and do > some processing. When completed, this thread would invoke a Function > which was passed as argument to the original function. > > The function used for the new thread (pthread) is (simplified to just > sum values with delay and display it), > > static void *execute(void *data) { > HandleScope scope; > ComputeData *cData = (ComputeData *) data; > Local<Value> val = Number::New(cData->a + cData->b); > sleep(2); > cout << val->NumberValue() << endl; > delete cData; > return NULL; > } > > This piece of code prints nan instead of the actual sum. data is a > dynamically allocated pointer to a struct with the values to add. > > What's wrong here? I've no prior V8 experience.
V8 is not multithreaded - in the sense that you cannot access V8 concurrently without synchronizing through the v8::Locker. You are probably best advised to stick to one thread that interacts with V8, extract the data you want to compute there, spawn your worker, and once it's done communicate the result back to V8. Matthias -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
