(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — Définit la limite de temps CPU pour l'environnement Lua
Définit la limite de temps CPU pour l'environnement Lua.
Si le temps total utilisateur et système utilisé par l'environnement après l'appel à cette méthode dépasse cette limite, une exception LuaSandboxTimeoutError est lancée.
Le temps utilisé dans les fonction de rappels PHP est inclus dans la limite.
Définit le temps limite à une fonction de rappel Lua en cours d'exécution provoque le minuteur à être réinitialisé, ou démarré s'il n'était pas déjà en cours d'exécution.
Note:
Sur Windows, la limite de temps CPU sera ignorée. Sur les systèmes d'exploitation qui ne prennent pas en charge
CLOCK_THREAD_CPUTIME_ID
, tels que FreeBSD et Mac OS X, le temps écoulé au mur, plutôt que le temps CPU, sera limité.
Aucune valeur n'est retournée.
Exemple #1 Appel d'une fonction Lua
<?php
// créer une nouveau LuaSandbox
$sandbox = new LuaSandbox();
// définir une limite de temps
$sandbox->setCPULimit( 2 );
// lance le code Lua
$sandbox->loadString( 'while true do end' )->call();
?>
Résultat de l'exemple ci-dessus est similaire à :
PHP Fatal error: Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded