(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — 设置 Lua 环境的 CPU 时间限制
设置 Lua 环境的 CPU 时间限制。
如果环境在调用此方法后使用的总用户时间和系统时间超过此限制,则会抛出 LuaSandboxTimeoutError 异常。
PHP 回调中使用的时间包含在限制内。
在 Lua 运行时从回调中设置时间限制会导致计时器重置,或者如果计时器尚未运行则启动。
注意:
在 Windows 上,将忽略 CPU 限制。在不支持
CLOCK_THREAD_CPUTIME_ID
的操作系统上,例如 FreeBSD 和 Mac OS X,将限制挂钟时间而不是 CPU 时间。
不返回值。
示例 #1 调用 Lua 函数
<?php
// 创建一个新的 LuaSandbox
$sandbox = new LuaSandbox();
// 设置时间限制
$sandbox->setCPULimit( 2 );
// 运行 Lua 代码
$sandbox->loadString( 'while true do end' )->call();
?>
上面的示例将输出类似于以下内容
PHP Fatal error: Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded