我正在使用 google 的 v8 javascript 引擎在我的项目中拥有一个嵌入式 js 解释器,它必须能够执行用户提供的代码,但我想知道是否可以在调用任何用户代码之前进行设置以确保如果代码试图无限期地递归(或者即使它只是执行太久),它可以以某种方式中止,抛出一个未捕获的异常,并将问题报告给调用者。
到目前为止,谢谢大家的回复......是的,我在发布这篇文章后不久就意识到,我基本上是在寻求某种解决停止问题的方法,我知道这是无法解决的,实际上远远超出了我的实际需要。
我需要的是某种机制来检测在 v8 环境中运行的某些东西何时足够快地返回,或者只是一种检测递归是否发生的机制......我的用例是最终用户不应该无论如何都在使用任何递归,如果我什至可以检测到这一点,那么我可以在那时拒绝它,而不是盲目地执行它。但是,对于具有不同隔离的不同线程,可以同时调用相同的函数,因此我不能只使用静态局部变量来锁定对同一函数的另一个调用。