Thank you Mads and Marcel for the replies. I've been trying to implement a way to terminate a script execution if it runs too long in V8. I've seen some previous posts here which suggested using the Locker and Preemption. However, I haven't been able to determine a proper way to do this. I'm going to post a new question regarding this subject.
Thank you again, Ravi On Apr 26, 11:09 am, Marcel Laverdet <[email protected]> wrote: > 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
