LuaSandbox::setCPULimit
(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
说明
Sets the CPU time limit for the Lua environment.
If the total user and system time used by the environment after the call to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.
Time used in PHP callbacks is included in the limit.
Setting the time limit from a callback while Lua is running causes the timer to be reset, or started if it was not already running.
注意:
On Windows, the CPU limit will be ignored. On operating systems that do not support
CLOCK_THREAD_CPUTIME_ID
, such as FreeBSD and Mac OS X, wall-clock time rather than CPU time will be limited.
返回值
没有返回值。
示例
示例 #1 Calling a Lua function
<?php
// create a new LuaSandbox
$sandbox = new LuaSandbox();
// set a time limit
$sandbox->setCPULimit( 2 );
// Run Lua code
$sandbox->loadString( 'while true do end' )->call();
?>
以上示例的输出类似于:
PHP Fatal error: Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded
参见
- LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
- LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment
用户贡献的备注
备份地址:http://www.lvesu.com/blog/php/luasandbox.setcpulimit.php