LuaSandbox LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimit — Lua 환경에 대한 CPU 시간 제한 설정


설명

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

Lua 환경에 대한 CPU 시간 제한을 설정합니다.

이 메서드를 호출한 후 환경에서 사용한 총 사용자 및 시스템 시간이 이 제한을 초과하면 LuaSandboxTimeoutError 예외가 발생합니다.

PHP 콜백에 사용된 시간이 제한에 포함됩니다.

Lua가 실행되는 동안 콜백에서 시간 제한을 설정하면 타이머가 재설정되거나 아직 실행되지 않은 경우 시작됩니다.

메모: Windows에서는 CPU 제한이 무시됩니다. FreeBSD 및 Mac OS X와 ​​같이 CLOCK_THREAD_CPUTIME_ID를 지원하지 않는 운영 체제에서는 CPU 시간이 아닌 벽시계 시간이 제한됩니다.


매개변수

limit
초 단위의 float로 제한하거나 제한이 없는 경우 false입니다.

반환 값

값이 반환되지 않습니다.


Examples

예제 #1 루아 함수 호출

                  
<?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();

?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

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

기타