The 'main thread' for a isolate is supposed to be interruptable, e.g., via Isolate::RequestInterrupt or Isolate::TerminateExecution.
I can't answer your question about how the parser / ast visitors is supposed to behave here :-/ On Mon, Oct 12, 2015 at 9:37 PM Adam Klein <ad...@chromium.org> wrote: > Which sorts of threads are expected to be interruptable? Clearly the > parser isn't (currently) interruptable in this way, since it takes in a > stack limit at construction time and never re-sets it. > > I guess the question is: is interruptability something that _all_ > AstVisitors should have, with a few exceptions? Or is it something that a > few AstVisitors care about, but most don't need to. Answering this question > will help decide what the right way of refactoring the base class stuff is. > > On Mon, Oct 12, 2015 at 12:31 PM, Jochen Eisinger <joc...@chromium.org> > wrote: > >> We use the stack limit to request interrupts from different threads, so >> checking it on a regular basis is important >> >> On Mon, Oct 12, 2015, 9:30 PM Adam Klein <ad...@chromium.org> wrote: >> >>> Any thoughts here? Caitlin is currently running into exactly the same >>> need in her do expression patch, so it'd be good to understand if we can do >>> something general here instead of having most AST visitors be Isolate-bound >>> while the few used from the parser need special duplicated code for stack >>> check handling. >>> >>> On Tue, Oct 6, 2015 at 4:17 PM, Adam Klein <ad...@chromium.org> wrote: >>> >>>> In trying to use AstExpressionVisitor in the parser, I've found the >>>> need to use an AST visitor where I don't have an Isolate handy. The >>>> DEFINE_AST_VISITOR_SUBCLASS_MEMBERS macro uses the Isolate for exactly one >>>> thing (in the method CheckStackOverflow): >>>> >>>> ... >>>> StackLimitCheck check(isolate_); >>>> if (!check.HasOverflowed()) return false; >>>> ... >>>> >>>> My question is this: is it important that the StackLimitCheck pull the >>>> stack limit out of the isolate every time CheckStackOverflow() is called? >>>> Or could we store the stack limit when AST visitors are constructed? The >>>> latter is what we already do for parsing, in ParseInfo. And from poking >>>> around the code (and in Blink) it seems like we generally only set the >>>> stack limit at thread startup. But I'm wondering if there are cases I'm not >>>> thinking about (maybe cases where a single AST visitor is used on multiple >>>> threads with the same Isolate?). >>>> >>>> - Adam >>>> >>> >>> -- >>> -- >>> v8-dev mailing list >>> v8-dev@googlegroups.com >>> http://groups.google.com/group/v8-dev >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "v8-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to v8-dev+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> -- >> v8-dev mailing list >> v8-dev@googlegroups.com >> http://groups.google.com/group/v8-dev >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to v8-dev+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > -- > v8-dev mailing list > v8-dev@googlegroups.com > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-dev+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.