Ok... so the problem with terminate execution is that it will
completely kill a given isolate (as far as I can tell). What I think
that means is that all local handles are destroyed and all persistant
handles are disposed. What I think you want (and also something I
want) is to be able to set a timeout for a single call to script-
>Run(). There is a subtle difference here. If your application calls
Run many times and is using a single isolate then we still have a
problem thats not solved by V8 (as far as I can tell).
Hopefully a V8 dev will come in here and explain this better and
hopefully offer a solution that I am not seeing. However, if we get
enough interest in this, I want to suggest a formal feature
enhancement to the V8 team to add a parameter to the Run function that
takes a timeout and maybe also a callback for when the timeout is
exceeded.
Here is the scenario I want to solve:
1.) My application is not threaded and it uses a single isolate.
2.) My application calls Run() many times. It does some work in C++,
calls Run() to run some JS supplied by a user, does some work in C++,
calls Run() ect...
3.) The JS supplied by the user could have infinite loops or long
running functions where the JS code is not calling into C++ (where I
could prevent them from running).