(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — Define la limitación de tiempo CPU para el entorno Lua
Define la limitación de tiempo CPU para el entorno Lua.
Si el tiempo total de usuario y sistema utilizado por el entorno después de la llamada a este método excede este límite, se lanza una excepción LuaSandboxTimeoutError.
El tiempo utilizado en las funciones de retrollamada PHP se incluye en el límite.
Definir el tiempo límite a una función de retrollamada Lua en ejecución provoca que el temporizador se reinicie, o se inicie si no estaba ya en ejecución.
Nota:
En Windows, la limitación de tiempo CPU será ignorada. En los sistemas operativos que no soportan
CLOCK_THREAD_CPUTIME_ID
, como FreeBSD y Mac OS X, el tiempo transcurrido en el muro, en lugar del tiempo CPU, será limitado.
No devuelve ningún valor.
Ejemplo #1 Llamada a una función Lua
<?php
// crear un nuevo LuaSandbox
$sandbox = new LuaSandbox();
// definir un límite de tiempo
$sandbox->setCPULimit( 2 );
// lanza el código Lua
$sandbox->loadString( 'while true do end' )->call();
?>
El resultado del ejemplo sería algo similar a:
PHP Fatal error: Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded