On Tuesday, 21 May 2019 01:18:34 UTC-4, Ben Hoyt wrote:
>
> I'm looking at adding a timeout option to my GoAWK script interpreter...
> Are there better / more performant ways to handle this?
>
 

Hi Ben, imposing resource bounds is a tricky problem. It's possible to do 
it in an interpreter implemented in C++, but it requires careful discipline 
throughout the implementation. It is essentially impossible to do in a 
target language whose variables are recycled by the garbage collector of 
the host language. Turing incompleteness of the target language (bounded 
recursion only) seems like it ought to help but in fact does not; a bounded 
program can still use all your memory and take ~forever.

The only reliable way to impose bounds is to use the operating system. Put 
the untrusted code in a different process, impose a limit on its maximum 
memory size, and kill it if it hasn't finished by your deadline.
 

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/b4182f6d-8a3c-41a2-9cb0-e9d3c7fb1780%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to