(PECL luasandbox >= 1.0.0)
LuaSandbox::setCPULimit — 設定 Lua 環境的 CPU 時間限制
設定 Lua 環境的 CPU 時間限制。
如果呼叫此方法後,環境使用的總使用者和系統時間超過此限制,則會擲出 LuaSandboxTimeoutError 例外。
PHP 回呼中使用的時間包含在此限制內。
在 Lua 運行時從回調函數設定時間限制會導致計時器重置,如果計時器尚未運行則會啟動它。
注意事項:
在 Windows 上,CPU 限制將被忽略。在不支援
CLOCK_THREAD_CPUTIME_ID
的作業系統上,例如 FreeBSD 和 Mac OS X,將限制實際經過時間而不是 CPU 時間。
無回傳值。
範例 #1 呼叫 Lua 函數
<?php
// 建立新的 LuaSandbox
$sandbox = new LuaSandbox();
// 設定時間限制
$sandbox->setCPULimit( 2 );
// 執行 Lua 程式碼
$sandbox->loadString( 'while true do end' )->call();
?>
上述範例將輸出類似以下的內容
PHP Fatal error: Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded