Documentación offline PHP master

LuaSandbox::pauseUsageTimer

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

LuaSandbox::pauseUsageTimer

Pausa el temporizador de uso de la CPU

Descripción#

public LuaSandbox::pauseUsageTimer(): bool
```php

Pausa el temporizador de uso de la CPU.

Esto solo tiene efecto cuando se llama desde una retrollamada de Lua. Cuando la ejecución vuelve a Lua, el temporizador se reiniciará automáticamente. Si se realiza una nueva llamada a Lua, el temporizador se reiniciará durante la duración de esa llamada.

Si una retrollamada PHP llama nuevamente a Lua con el temporizador sin pausar, y esa función Lua llama nuevamente a PHP, la segunda llamada PHP no podrá pausar el temporizador. La lógica es que incluso si la segunda llamada PHP evita contar el uso de la CPU contra el límite, la primera llamada sigue contándolo.

## Parámetros

Esta función no contiene ningún parámetro.

## Valores devueltos

Devuelve un `bool` indicando si el temporizador está ahora en pausa.

## Ejemplos

Manipulando el temporizador de uso
setCPULimit( 1 ); function doWait( $t ) { $end = microtime( true ) + $t; while ( microtime( true ) < $end ) { // gasta ciclos de CPU } } // Registrar una función de retrollamada PHP $sandbox->registerLibrary( 'php', [ 'test' => function () use ( $sandbox ) { $sandbox->pauseUsageTimer(); doWait( 5 ); $sandbox->unpauseUsageTimer(); doWait( 0.1 ); }, 'test2' => function () use ( $sandbox ) { $sandbox->pauseUsageTimer(); $sandbox->unpauseUsageTimer(); doWait( 1.1 ); } ] ); echo "Esto no debería agotar el tiempo...\n"; $sandbox->loadString( 'php.test()' )->call(); echo "Esto debería agotar el tiempo.\n"; try { $sandbox->loadString( 'php.test2()' )->call(); echo "¿No lo hizo?\n"; } catch ( LuaSandboxTimeoutError $ex ) { echo "¡Lo hizo! " . $ex->getMessage() . "\n"; } ?>

```php

El ejemplo anterior mostrará:

Esto no debería agotar el tiempo...
Esto debería agotar el tiempo.
¡Lo hizo! El tiempo máximo de ejecución para este script fue excedido

Véase también#

LuaSandbox::setCPULimit

LuaSandbox::unpauseUsageTimer