<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.luasandbox.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'luasandbox.pauseusagetimer.php',
    1 => 'LuaSandbox::pauseUsageTimer',
    2 => 'Pausa el temporizador de uso de la CPU',
  ),
  'up' => 
  array (
    0 => 'class.luasandbox.php',
    1 => 'LuaSandbox',
  ),
  'prev' => 
  array (
    0 => 'luasandbox.loadstring.php',
    1 => 'LuaSandbox::loadString',
  ),
  'next' => 
  array (
    0 => 'luasandbox.registerlibrary.php',
    1 => 'LuaSandbox::registerLibrary',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/luasandbox/luasandbox/pauseusagetimer.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="luasandbox.pauseusagetimer" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">LuaSandbox::pauseUsageTimer</h1>
  <p class="verinfo">(PECL luasandbox &gt;= 1.4.0)</p><p class="refpurpose"><span class="refname">LuaSandbox::pauseUsageTimer</span> &mdash; <span class="dc-title">Pausa el temporizador de uso de la CPU</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-luasandbox.pauseusagetimer-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>LuaSandbox::pauseUsageTimer</strong></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="simpara">
   Pausa el temporizador de uso de la CPU.
  </p>
  <p class="simpara">
   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.
  </p>
  <p class="simpara">
   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.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-luasandbox.pauseusagetimer-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">Esta función no contiene ningún parámetro.</p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-luasandbox.pauseusagetimer-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="simpara">
   Devuelve un <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> indicando si el temporizador está ahora en pausa.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-luasandbox.pauseusagetimer-examples">
  <h3 class="title">Ejemplos</h3>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Manipulando el temporizador de uso</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">// Crear un nuevo LuaSandbox y definir un límite de CPU<br /></span><span style="color: #0000BB">$sandbox </span><span style="color: #007700">= new </span><span style="color: #0000BB">LuaSandbox</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setCPULimit</span><span style="color: #007700">( </span><span style="color: #0000BB">1 </span><span style="color: #007700">);<br /><br />function </span><span style="color: #0000BB">doWait</span><span style="color: #007700">( </span><span style="color: #0000BB">$t </span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$end </span><span style="color: #007700">= </span><span style="color: #0000BB">microtime</span><span style="color: #007700">( </span><span style="color: #0000BB">true </span><span style="color: #007700">) + </span><span style="color: #0000BB">$t</span><span style="color: #007700">;<br />    while ( </span><span style="color: #0000BB">microtime</span><span style="color: #007700">( </span><span style="color: #0000BB">true </span><span style="color: #007700">) &lt; </span><span style="color: #0000BB">$end </span><span style="color: #007700">) {<br />        </span><span style="color: #FF8000">// waste CPU cycles<br />    </span><span style="color: #007700">}<br />}<br /><br /></span><span style="color: #FF8000">// Registrar una función de retrollamada PHP<br /></span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">registerLibrary</span><span style="color: #007700">( </span><span style="color: #DD0000">'php'</span><span style="color: #007700">, [<br />    </span><span style="color: #DD0000">'test' </span><span style="color: #007700">=&gt; function () use ( </span><span style="color: #0000BB">$sandbox </span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">pauseUsageTimer</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">doWait</span><span style="color: #007700">( </span><span style="color: #0000BB">5 </span><span style="color: #007700">);<br /><br />        </span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">unpauseUsageTimer</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">doWait</span><span style="color: #007700">( </span><span style="color: #0000BB">0.1 </span><span style="color: #007700">);<br />    },<br />    </span><span style="color: #DD0000">'test2' </span><span style="color: #007700">=&gt; function () use ( </span><span style="color: #0000BB">$sandbox </span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">pauseUsageTimer</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">unpauseUsageTimer</span><span style="color: #007700">();<br />        </span><span style="color: #0000BB">doWait</span><span style="color: #007700">( </span><span style="color: #0000BB">1.1 </span><span style="color: #007700">);<br />    }<br />] );<br /><br />echo </span><span style="color: #DD0000">"Esto no debería agotar el tiempo...\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">loadString</span><span style="color: #007700">( </span><span style="color: #DD0000">'php.test()' </span><span style="color: #007700">)-&gt;</span><span style="color: #0000BB">call</span><span style="color: #007700">();<br /><br />echo </span><span style="color: #DD0000">"Esto debería agotar el tiempo.\n"</span><span style="color: #007700">;<br />try {<br />    </span><span style="color: #0000BB">$sandbox</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">loadString</span><span style="color: #007700">( </span><span style="color: #DD0000">'php.test2()' </span><span style="color: #007700">)-&gt;</span><span style="color: #0000BB">call</span><span style="color: #007700">();<br />    echo </span><span style="color: #DD0000">"¿No lo hizo?\n"</span><span style="color: #007700">;<br />} catch ( </span><span style="color: #0000BB">LuaSandboxTimeoutError $ex </span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"¡Lo hizo! " </span><span style="color: #007700">. </span><span style="color: #0000BB">$ex</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">() . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>El ejemplo anterior mostrará:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">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</pre>
</div>
   </div>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-luasandbox.pauseusagetimer-seealso">
  <h3 class="title">Ver también</h3>
  <ul class="simplelist">
   <li><span class="methodname"><a href="luasandbox.setcpulimit.php" class="methodname" rel="rdfs-seeAlso">LuaSandbox::setCPULimit()</a> - Define la limitaci&oacute;n de tiempo CPU para el entorno Lua</span></li>
   <li><span class="methodname"><a href="luasandbox.unpauseusagetimer.php" class="methodname" rel="rdfs-seeAlso">LuaSandbox::unpauseUsageTimer()</a> - Reanuda el temporizador de uso pausado por LuaSandbox::pauseUsageTimer</span></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>