LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimitDefine o limite de tempo da CPU para o ambiente Lua

Descrição

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

Define o limite de tempo da CPU para o ambiente Lua.

Se o tempo total do usuário e do sistema usado pelo ambiente após a chamada para este método exceder este limite, uma exceção LuaSandboxTimeoutError será lançada.

O tempo gasto em funções de retorno do PHP está incluído no limite.

Definir o limite de tempo a partir de uma função de retorno enquanto Lua está em execução faz com que o cronômetro seja reiniciado ou iniciado se ainda não estiver em execução.

Nota:

No Windows, o limite da CPU será ignorado. Em sistemas operacionais que não suportam CLOCK_THREAD_CPUTIME_ID, como FreeBSD e Mac OS X, o tempo de relógio de parede em vez do tempo da CPU será limitado.

Parâmetros

limit

Limite como float em segundos, ou false para nenhum limite.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Chamando uma função Lua

<?php

// Cria um novo LuaSandbox
$sandbox = new LuaSandbox();

// Define um limite de tempo
$sandbox->setCPULimit( 2 );

// Executa código Lua
$sandbox->loadString( 'while true do end' )->call();

?>

O exemplo acima produzirá algo semelhante a:

PHP Fatal error:  Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top