PHP Conference Kansai 2025

LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimitDefine la limitación de tiempo CPU para el entorno Lua

Descripción

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

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.

Parámetros

limit

El límite como float en segundos, o false para ningún límite.

Valores devueltos

No devuelve ningún valor.

Ejemplos

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

Ver también

add a note

User Contributed Notes

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