Is this 64bit? If so it could be this issue:
http://code.google.com/p/v8/issues/detail?id=1180
I only observed this issue with stack overflows but the root cause is that
stack limits are not being set correctly so perhaps they're related? Try
this.. right after you enter the context in your new thread put this line:
Script::Compile(String::New("void 0;"));
On Tue, Apr 26, 2011 at 9:38 PM, Mads Sig Ager <[email protected]> wrote:
> Hi Ravi,
>
> would you provide a reduced test case that reproduces this issue? Without
> that I can only guess. Exception termination takes place by throwing
> uncatchable exceptions. However, when terminating execution we have to
> return control to C++ frames on the stack. When that happens the embedder
> should return out of C++ back to JavaScript until there are no more
> JavaScript frames on the stack.
>
> Thanks, -- Mads
>
>
> On Sat, Apr 16, 2011 at 12:54 PM, Chinnu <[email protected]> wrote:
>
>> Hi,
>>
>> I've been trying to come up with a way to terminate the V8 execution
>> on a script if it runs too long.
>>
>> For this, I've used the Locker::StartPreemption() and on receiving a
>> preemption (in RuntimePreempt() method in execution.cc), am
>> incrementing a count and invoking
>> V8::TerminateExecution(current_thread_id) if the count exceeds a
>> limit.
>>
>> However, the use of V8::TerminateExecution(current_thread_id) at that
>> point is causing a crash probably due to a stack corruption. I was
>> wondering if this isn't an appropriate place to use this API, and if
>> this API is supposed to be invoked in a specific way.
>>
>> Please let me know if there is a proper way to use the
>> V8::TerminateExecution() API.
>>
>> Thanks,
>> Ravi
>>
>> --
>> v8-users mailing list
>> [email protected]
>> http://groups.google.com/group/v8-users
>>
>
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
>
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users