LuaSandbox::setCPULimit
(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
Описание
$limit
) : voidSets 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.
Список параметров
-
limit
-
Limit as a float in seconds, or
false
for no limit.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Примеры
Пример #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