PHP 8.4.1 Released!

LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimitDéfinit la limite de temps CPU pour l'environnement Lua

Description

public LuaSandbox::setCPULimit(float|bool $limit): void

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é.

Liste de paramètres

limit

La limite en tant que float en secondes, ou false pour aucune limite.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

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

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top