php8.5
Home/ Manual/ luasandbox / luasandbox/ LuaSandbox::setCPULimit

LuaSandbox::setCPULimit

PHP function Edit on GitHub ✎

(PECL luasandbox >= 1.0.0)

Set the CPU time limit for the Lua environment

Description

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

Sets the CPU time limit for the Lua environment.

If the total user and system time used by the environment after the call to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.

Time used in PHP callbacks is included in the limit.

Setting the time limit from a callback while Lua is running causes the timer to be reset, or started if it was not already running.

Note

On Windows, the CPU limit will be ignored. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, wall-clock time rather than CPU time will be limited.

Parameters

limit

Limit as a float in seconds, or false for no limit.

Return Values

Void

Examples

Calling a Lua function

php
<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a time limit
$sandbox->setCPULimit( 2 );

// Run Lua code
$sandbox->loadString( 'while true do end' )->call();

?>

The above example will output something similar to:

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

See Also

  • LuaSandbox::getCPUUsage
  • LuaSandbox::setMemoryLimit

Source: reference/luasandbox/luasandbox/setcpulimit.xml · from the official PHP manual (php/doc-en)