How do I check in my own native code if termination is happening, and how 
do I throw the uncatchable error?
IsTerminating seems to return false on the exit of my native call, and yes, 
I can throw an error, but not one that cannot be caught 

On Tuesday, 29 July 2025 at 13:22:39 UTC+1 Jakob Kummerow wrote:

> This an optimization: if a loop contains a call, it doesn't need to emit 
> its own stack checks in order to support interrupt requests, because the 
> callee will contain a stack check.
> So you can add an interrupt check to your native code that you're calling.
> It *might* be feasible to fix this on the V8 side by checking if the 
> call's target is known to be a non-JS function... not sure.
>
> (FWIW, the specific given example is a bit unconvincing: a "tight 
> rendering loop" that "native_sleep(1000)"s all the time can certainly take 
> the minuscule overhead of a function call.)
>
>
> On Tue, Jul 29, 2025 at 9:47 AM jmr <audrius.b...@gmail.com> wrote:
>
>> Hi,
>>
>> I've got code as follows in js:
>>
>> while (true) { native_sleep(1000); }
>>
>> Effectively js keeps leaving and re-entering native code repeatedly 
>> without affecting it's own stack. I noticed that in a situation like this 
>> TerminateExecution simply does not work.
>>
>> If I change my code to:
>>
>> func js_sleep(arg) { native_sleep(arg); }
>> while (true) { js_sleep(1000); }
>>
>> Then it works, but this adds an unnecessary js stackframe, which for a 
>> tight rendering loop might not be great.
>>
>> Is there a way to propagate termination without an extra js frame somehow?
>> I.e., could the termination checks be done when entering/leaving native 
>> calls?
>> Can I somehow force the propagation to kick in once I'm leaving my native 
>> call?
>>
>> Thanks.
>>
>> -- 
>> -- 
>> v8-users mailing list
>> v8-u...@googlegroups.com
>> http://groups.google.com/group/v8-users
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "v8-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to v8-users+u...@googlegroups.com.
>> To view this discussion visit 
>> https://groups.google.com/d/msgid/v8-users/2c2b769d-d599-4493-a459-2f05da527cadn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/v8-users/2c2b769d-d599-4493-a459-2f05da527cadn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/v8-users/950f397f-0fe2-4acc-96a6-2b7694befdc2n%40googlegroups.com.

Reply via email to