<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.ev.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'class.ev.php',
    1 => 'Ev',
    2 => 'La clase Ev',
  ),
  'up' => 
  array (
    0 => 'book.ev.php',
    1 => 'Ev',
  ),
  'prev' => 
  array (
    0 => 'ev.periodic-modes.php',
    1 => 'Modos de operaci&oacute;n peri&oacute;dica de un watcher',
  ),
  'next' => 
  array (
    0 => 'ev.backend.php',
    1 => 'Ev::backend',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/ev/ev.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.ev.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="class.ev" class="reference">
 <h1 class="title">La clase Ev</h1>
 
 <div class="partintro"><p class="verinfo">(PECL ev &gt;= 0.2.0)</p>

  <div class="section" id="ev.intro">
   <h2 class="title">Introducción</h2>
   <p class="simpara">
    La clase Ev es una clase estática que proporciona acceso al bucle por defecto
    así como a algunas operaciones comunes.
   </p>
  </div>

  <div class="section" id="ev.synopsis">
   <h2 class="title">Sinopsis de la Clase</h2>


   <div class="classsynopsis">
    <span class="ooclass">
     <strong class="classname"></strong>
    </span>

    <div class="classsynopsisinfo">
     <span class="ooclass">
      <span class="modifier">final</span>
      <span class="modifier">class</span> <strong class="classname">Ev</strong>
     </span>
     {</div>

    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Constantes */</div>

    <div class="fieldsynopsis">
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.flag-auto"><var class="varname">FLAG_AUTO</var></a></var><span class="initializer"> = 0</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.flag-noenv"><var class="varname">FLAG_NOENV</var></a></var><span class="initializer"> = 16777216</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.flag-forkcheck"><var class="varname">FLAG_FORKCHECK</var></a></var><span class="initializer"> = 33554432</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.flag-noinotify"><var class="varname">FLAG_NOINOTIFY</var></a></var><span class="initializer"> = 1048576</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.flag-signalfd"><var class="varname">FLAG_SIGNALFD</var></a></var><span class="initializer"> = 2097152</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.flag-nosigmask"><var class="varname">FLAG_NOSIGMASK</var></a></var><span class="initializer"> = 4194304</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.run-nowait"><var class="varname">RUN_NOWAIT</var></a></var><span class="initializer"> = 1</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.run-once"><var class="varname">RUN_ONCE</var></a></var><span class="initializer"> = 2</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.break-cancel"><var class="varname">BREAK_CANCEL</var></a></var><span class="initializer"> = 0</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.break-one"><var class="varname">BREAK_ONE</var></a></var><span class="initializer"> = 1</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.break-all"><var class="varname">BREAK_ALL</var></a></var><span class="initializer"> = 2</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.minpri"><var class="varname">MINPRI</var></a></var><span class="initializer"> = -2</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.maxpri"><var class="varname">MAXPRI</var></a></var><span class="initializer"> = 2</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.read"><var class="varname">READ</var></a></var><span class="initializer"> = 1</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.write"><var class="varname">WRITE</var></a></var><span class="initializer"> = 2</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.timer"><var class="varname">TIMER</var></a></var><span class="initializer"> = 256</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.periodic"><var class="varname">PERIODIC</var></a></var><span class="initializer"> = 512</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.signal"><var class="varname">SIGNAL</var></a></var><span class="initializer"> = 1024</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.child"><var class="varname">CHILD</var></a></var><span class="initializer"> = 2048</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.stat"><var class="varname">STAT</var></a></var><span class="initializer"> = 4096</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.idle"><var class="varname">IDLE</var></a></var><span class="initializer"> = 8192</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.prepare"><var class="varname">PREPARE</var></a></var><span class="initializer"> = 16384</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.check"><var class="varname">CHECK</var></a></var><span class="initializer"> = 32768</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.embed"><var class="varname">EMBED</var></a></var><span class="initializer"> = 65536</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.custom"><var class="varname">CUSTOM</var></a></var><span class="initializer"> = 16777216</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.error"><var class="varname">ERROR</var></a></var><span class="initializer"> = 2147483648</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-select"><var class="varname">BACKEND_SELECT</var></a></var><span class="initializer"> = 1</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-poll"><var class="varname">BACKEND_POLL</var></a></var><span class="initializer"> = 2</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-epoll"><var class="varname">BACKEND_EPOLL</var></a></var><span class="initializer"> = 4</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-kqueue"><var class="varname">BACKEND_KQUEUE</var></a></var><span class="initializer"> = 8</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-devpoll"><var class="varname">BACKEND_DEVPOLL</var></a></var><span class="initializer"> = 16</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-port"><var class="varname">BACKEND_PORT</var></a></var><span class="initializer"> = 32</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-all"><var class="varname">BACKEND_ALL</var></a></var><span class="initializer"> = 63</span>;</div>

    <div class="fieldsynopsis"><span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.ev.php#ev.constants.backend-mask"><var class="varname">BACKEND_MASK</var></a></var><span class="initializer"> = 65535</span>;</div>


    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Métodos */</div>
    <div class="methodsynopsis dc-description">
   <span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.backend.php" class="methodname">backend</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.depth.php" class="methodname">depth</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.embeddablebackends.php" class="methodname">embeddableBackends</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.feedsignal.php" class="methodname">feedSignal</a></span>(<span class="methodparam">
    
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$signum</code>
   </span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.feedsignalevent.php" class="methodname">feedSignalEvent</a></span>(<span class="methodparam">
    
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$signum</code>
   </span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.iteration.php" class="methodname">iteration</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.now.php" class="methodname">now</a></span>(): <span class="type"><a href="language.types.float.php" class="type float">float</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.nowupdate.php" class="methodname">nowUpdate</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.recommendedbackends.php" class="methodname">recommendedBackends</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.resume.php" class="methodname">resume</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.run.php" class="methodname">run</a></span>(<span class="methodparam">
    
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$flags</code>
   <span class="initializer"> = ?</span></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.sleep.php" class="methodname">sleep</a></span>(<span class="methodparam">
    
    <span class="type"><a href="language.types.float.php" class="type float">float</a></span> <code class="parameter">$seconds</code>
   </span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.stop.php" class="methodname">stop</a></span>(<span class="methodparam">
    
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$how</code>
   <span class="initializer"> = ?</span></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.supportedbackends.php" class="methodname">supportedBackends</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.suspend.php" class="methodname">suspend</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.time.php" class="methodname">time</a></span>(): <span class="type"><a href="language.types.float.php" class="type float">float</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">final</span>
   <span class="modifier">public</span>
   <span class="modifier">static</span>
   <span class="methodname"><a href="ev.verify.php" class="methodname">verify</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>

   }</div>

  </div>

  <div class="section" id="ev.constants">
   <h2 class="title">Constantes predefinidas</h2>

  <p class="para" id="ev.constants.loop-flags">
   Flags pasados para crear un bucle:

    <dl>
     
      <dt id="ev.constants.flag-auto">
       <strong><code><a href="class.ev.php#ev.constants.flag-auto">Ev::FLAG_AUTO</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El valor por defecto de los flags.
       </span>
      </dd>
     
     
      <dt id="ev.constants.flag-noenv">
       <strong><code><a href="class.ev.php#ev.constants.flag-noenv">Ev::FLAG_NOENV</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Si este flag se utiliza (o si el programa ejecuta
        setuid o setgid), <code class="literal">libev</code>
        no va a mirar la variable de entorno
        <var class="varname">LIBEV_FLAGS</var>. De lo contrario (comportamiento por defecto),
        <var class="varname">LIBEV_FLAGS</var> va a sobrescribir completamente el
        flag si se encuentra. Útil para pruebas de rendimiento
        y para la búsqueda de bugs.
       </span>
      </dd>
     
     
      <dt id="ev.constants.flag-forkcheck">
       <strong><code><a href="class.ev.php#ev.constants.flag-forkcheck">Ev::FLAG_FORKCHECK</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Hace que libev verifique si existe un fork en cada iteración,
        en lugar de llamar manualmente al método
        <span class="methodname"><a href="evloop.fork.php" class="methodname">EvLoop::fork()</a></span>. Este mecanismo funciona
        llamando a <code class="literal">getpid()</code> en cada iteración de
        la bucle, y así, va a ralentizar el bucle de eventos que
        poseen muchas iteraciones, pero habitualmente,
        este ralentizamiento no es notable. La configuración de este flag
        no puede ser sobrescrita o especificada en la variable
        de entorno <var class="varname">LIBEV_FLAGS</var>.
       </span>
      </dd>
     
     
      <dt id="ev.constants.flag-noinotify">
       <strong><code><a href="class.ev.php#ev.constants.flag-noinotify">Ev::FLAG_NOINOTIFY</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Cuando este flag está especificado, <code class="literal">libev</code>
        no va a intentar utilizar la API <code class="literal">inotify</code>
        para estos watchers
        <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_stat_code_did_the_file_attri" class="link external">&raquo;&nbsp;ev_stat</a>.
        Este flag puede ser útil para conservar los descriptores de
        ficheros inotify, sabiendo que de lo contrario, cada bucle utilizando los
        watchers <code class="literal">ev_stat</code> va a consumir un manejador
        <code class="literal">inotify</code>.
       </span>
      </dd>
     
     
      <dt id="ev.constants.flag-signalfd">
       <strong><code><a href="class.ev.php#ev.constants.flag-signalfd">Ev::FLAG_SIGNALFD</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Cuando este flag está especificado, <code class="literal">libev</code>
        va a intentar utilizar la API <code class="literal">signalfd</code>
        para estos watchers
        <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_signal_code_signal_me_when_a" class="link external">&raquo;&nbsp;ev_signal</a>
        (y
        <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_child_code_watch_out_for_pro" class="link external">&raquo;&nbsp;ev_child</a>).
        Esta API entrega las señales de forma asíncrona, lo que
        la hace más rápida, y puede permitir la recuperación de datos
        de señales en espera. También puede simplificar la gestión
        de señales con hilos, sabiendo que las señales son propiedades bloqueadas
        en los hilos. <code class="literal">Signalfd</code>
        no será utilizado por defecto.
       </span>
      </dd>
     
     
      <dt id="ev.constants.flag-nosigmask">
       <strong><code><a href="class.ev.php#ev.constants.flag-nosigmask">Ev::FLAG_NOSIGMASK</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Cuando este flag está especificado, <code class="literal">libev</code>
        no va a modificar la máscara de señal. Esto significa
        que se debe asegurar que las señales están desbloqueadas
        antes de recibirlas.
       </span>
       <span class="simpara">
        Este comportamiento es útil para la gestión personalizada de señales,
        o la gestión de señales únicamente en hilos específicos.
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.run-flags">
    Flags a pasar a
    <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>,
    o a <span class="methodname"><a href="evloop.run.php" class="methodname">EvLoop::run()</a></span>

    <dl>
     
      <dt id="ev.constants.run-nowait">
       <strong><code><a href="class.ev.php#ev.constants.run-nowait">Ev::RUN_NOWAIT</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Significa que el bucle de eventos va a mirar si hay nuevos
        eventos presentes, va a gestionar estos nuevos eventos,
        y todos los eventos especiales, pero no va a esperar y
        bloquear el proceso en el caso de que no haya eventos,
        y va a retornar después de una iteración del bucle. A veces
        es útil poner en cola y gestionar los nuevos eventos
        durante cálculos largos, y esto, para mantener el programa activo.
       </span>
      </dd>
     
     
      <dt id="ev.constants.run-once">
       <strong><code><a href="class.ev.php#ev.constants.run-once">Ev::RUN_ONCE</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Significa que el bucle de eventos va a mirar si hay nuevos
        eventos presentes (y esperar, si es necesario), y va a gestionarlos,
        ellos y los especiales. Va a bloquear el proceso hasta que al
        menos un evento llegue (que puede ser un evento interno de libev,
        también, no está garantizado que una función de callback registrada por
        el usuario sea llamada), y va a retornar después de una iteración
        del bucle.
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.break-flags">
    Flags pasados a
    <span class="methodname"><a href="ev.stop.php" class="methodname">Ev::stop()</a></span>,
    o a
    <span class="methodname"><a href="evloop.stop.php" class="methodname">EvLoop::stop()</a></span>

    <dl>
     
      <dt id="ev.constants.break-cancel">
       <strong><code><a href="class.ev.php#ev.constants.break-cancel">Ev::BREAK_CANCEL</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Cancela la operación de cancelación.
       </span>
      </dd>
     
     
      <dt id="ev.constants.break-one">
       <strong><code><a href="class.ev.php#ev.constants.break-one">Ev::BREAK_ONE</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Retorna la llamada más profunda a
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>
        (o <span class="methodname"><a href="evloop.run.php" class="methodname">EvLoop::run()</a></span>).
       </span>
      </dd>
     
     
      <dt id="ev.constants.break-all">
       <strong><code><a href="class.ev.php#ev.constants.break-all">Ev::BREAK_ALL</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Retorna la llamada más cercana a
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>
        (o <span class="methodname"><a href="evloop.run.php" class="methodname">EvLoop::run()</a></span>).
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.watcher-pri">
    Prioridades de Watcher:

    <dl>
     
      <dt id="ev.constants.minpri">
       <strong><code><a href="class.ev.php#ev.constants.minpri">Ev::MINPRI</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Prioridad mínima permitida para un watcher.
       </span>
      </dd>
     
     
      <dt id="ev.constants.maxpri">
       <strong><code><a href="class.ev.php#ev.constants.maxpri">Ev::MAXPRI</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Prioridad máxima permitida para un watcher.
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.watcher-revents">
    Máscaras de bytes de eventos (recibidos):

    <dl>
     
      <dt id="ev.constants.read">
       <strong><code><a href="class.ev.php#ev.constants.read">Ev::READ</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El descriptor de fichero en el watcher
        <span class="classname"><a href="class.evio.php" class="classname">EvIo</a></span> se ha vuelto accesible
        en lectura.
       </span>
      </dd>
     
     
      <dt id="ev.constants.write">
       <strong><code><a href="class.ev.php#ev.constants.write">Ev::WRITE</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El descriptor de fichero en el watcher
        <span class="classname"><a href="class.evio.php" class="classname">EvIo</a></span> se ha vuelto accesible
        en escritura.
       </span>
      </dd>
     
     
      <dt id="ev.constants.timer">
       <strong><code><a href="class.ev.php#ev.constants.timer">Ev::TIMER</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El watcher <span class="classname"><a href="class.evtimer.php" class="classname">EvTimer</a></span>
        ha alcanzado su tiempo máximo de espera.
       </span>
      </dd>
     
     
      <dt id="ev.constants.periodic">
       <strong><code><a href="class.ev.php#ev.constants.periodic">Ev::PERIODIC</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El watcher <span class="classname"><a href="class.evperiodic.php" class="classname">EvPeriodic</a></span>
        ha alcanzado su tiempo máximo de espera.
       </span>
      </dd>
     
     
      <dt id="ev.constants.signal">
       <strong><code><a href="class.ev.php#ev.constants.signal">Ev::SIGNAL</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Una señal especificada en
        <span class="methodname"><a href="evsignal.construct.php" class="methodname">EvSignal::__construct()</a></span>
        ha sido recibida.
       </span>
      </dd>
     
     
      <dt id="ev.constants.child">
       <strong><code><a href="class.ev.php#ev.constants.child">Ev::CHILD</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El <code class="parameter">pid</code> especificado en
        <span class="methodname"><a href="evchild.construct.php" class="methodname">EvChild::__construct()</a></span>
        ha recibido una modificación de estado.
       </span>
      </dd>
     
     
      <dt id="ev.constants.stat">
       <strong><code><a href="class.ev.php#ev.constants.stat">Ev::STAT</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        La ruta especificada en el watcher
        <span class="classname"><a href="class.evstat.php" class="classname">EvStat</a></span> ha modificado sus
        atributos.
       </span>
      </dd>
     
     
      <dt id="ev.constants.idle">
       <strong><code><a href="class.ev.php#ev.constants.idle">Ev::IDLE</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El watcher <span class="classname"><a href="class.evidle.php" class="classname">EvIdle</a></span> funciona cuando
        no tiene ninguna otra tarea que hacer con los otros watchers.
       </span>
      </dd>
     
     
      <dt id="ev.constants.prepare">
       <strong><code><a href="class.ev.php#ev.constants.prepare">Ev::PREPARE</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Todos los watchers <span class="classname"><a href="class.evprepare.php" class="classname">EvPrepare</a></span>
        son llamados justo antes del inicio de
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>. Así, los watchers
        <span class="classname"><a href="class.evprepare.php" class="classname">EvPrepare</a></span> son los últimos watchers
        en ser llamados antes del reposo del bucle de eventos,
        o la puesta en cola de los nuevos eventos.
       </span>
      </dd>
     
     
      <dt id="ev.constants.check">
       <strong><code><a href="class.ev.php#ev.constants.check">Ev::CHECK</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Todos los watchers <span class="classname"><a href="class.evcheck.php" class="classname">EvCheck</a></span>
        son puestos en cola justo después de que
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span> haya recuperado
        los nuevos eventos, pero antes, todas las
        funciones de callback de todos los eventos recibidos
        son puestas en cola. Así, los watchers
        <span class="classname"><a href="class.evcheck.php" class="classname">EvCheck</a></span> serán llamados antes que cualquier
        otro watcher de misma prioridad o de prioridad más baja
        en una iteración del bucle de eventos.
       </span>
      </dd>
     
     
      <dt id="ev.constants.embed">
       <strong><code><a href="class.ev.php#ev.constants.embed">Ev::EMBED</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        El bucle de eventos embebido especificado en el
        watcher <span class="classname"><a href="class.evembed.php" class="classname">EvEmbed</a></span> necesita
        toda la atención.
       </span>
      </dd>
     
     
      <dt id="ev.constants.custom">
       <strong><code><a href="class.ev.php#ev.constants.custom">Ev::CUSTOM</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Aún no enviado (o utilizado) por
        <code class="literal">libev</code>, pero puede ser
        libremente utilizado por los usuarios
        <code class="literal">libev</code> para señalar los watchers
        (i.e. vía el método <span class="methodname"><a href="evwatcher.feed.php" class="methodname">EvWatcher::feed()</a></span>).
       </span>
      </dd>
     
     
      <dt id="ev.constants.error">
       <strong><code><a href="class.ev.php#ev.constants.error">Ev::ERROR</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Ha ocurrido un error desconocido, el watcher se ha detenido. Esto puede
        ocurrir porque el watcher no ha podido ser iniciado correctamente
        porque <code class="literal">libev</code> ha excedido la memoria asignada, un
        descriptor de fichero ha sido cerrado, u otro problema.
        <code class="literal">Libev</code> considera esto como bugs
        de la aplicación. Ver también
        <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#ANATOMY_OF_A_WATCHER_CONTENT" class="link external">&raquo;&nbsp;la anatomía
        de un watcher</a>
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.watcher-backends">
    Flags de Backend:

    <dl>
     
      <dt id="ev.constants.backend-select">
       <strong><code><a href="class.ev.php#ev.constants.backend-select">Ev::BACKEND_SELECT</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        <code class="literal">select(2) backend</code>
       </span>
      </dd>
     
     
      <dt id="ev.constants.backend-poll">
       <strong><code><a href="class.ev.php#ev.constants.backend-poll">Ev::BACKEND_POLL</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        <code class="literal">poll(2) backend</code>
       </span>
      </dd>
     
     
      <dt id="ev.constants.backend-epoll">
       <strong><code><a href="class.ev.php#ev.constants.backend-epoll">Ev::BACKEND_EPOLL</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Backend <code class="literal">epoll(7)</code> específico de Linux
        para, a la vez, los kernels antes y después de 2.6.9.
       </span>
      </dd>
     
     
      <dt id="ev.constants.backend-kqueue">
       <strong><code><a href="class.ev.php#ev.constants.backend-kqueue">Ev::BACKEND_KQUEUE</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Backend <code class="literal">kqueue</code> utilizado en la
        mayoría de los sistemas BSD. El watcher <span class="classname"><a href="class.evembed.php" class="classname">EvEmbed</a></span>
        puede ser utilizado para embeber un bucle (con el
        backend kqueue) en otro. Actualmente, un bucle puede
        intentar crear un bucle de eventos con el backend
        <code class="literal">kqueue</code> y utilizarlo únicamente para los
        sockets.
       </span>
      </dd>
     
     
      <dt id="ev.constants.backend-devpoll">
       <strong><code><a href="class.ev.php#ev.constants.backend-devpoll">Ev::BACKEND_DEVPOLL</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Backend Solaris 8. Actualmente no implementado.
       </span>
      </dd>
     
     
      <dt id="ev.constants.backend-port">
       <strong><code><a href="class.ev.php#ev.constants.backend-port">Ev::BACKEND_PORT</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Mecanismo de puerto de eventos Solaris con buen rendimiento.
       </span>
      </dd>
     
     
      <dt id="ev.constants.backend-all">
       <strong><code><a href="class.ev.php#ev.constants.backend-all">Ev::BACKEND_ALL</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        Prueba todos los backends (incluyendo los corruptos).
        No se recomienda utilizarlo explícitamente.
        Los operadores de bits deberían ser aplicados aquí
        (i.e. <strong><code><a href="class.ev.php#ev.constants.backend-all">Ev::BACKEND_ALL</a></code></strong> &amp; ~
        <strong><code><a href="class.ev.php#ev.constants.backend-kqueue">Ev::BACKEND_KQUEUE</a></code></strong>).
        Utilice el método
        <span class="methodname"><a href="ev.recommendedbackends.php" class="methodname">Ev::recommendedBackends()</a></span> o no
        especifique ningún backend.
       </span>
      </dd>
     
     
      <dt id="ev.constants.backend-mask">
       <strong><code><a href="class.ev.php#ev.constants.backend-mask">Ev::BACKEND_MASK</a></code></strong>
      </dt>
      <dd>
       <span class="simpara">
        No es un backend, sino una máscara para seleccionar todos
        los bits de un backend desde el valor de
        <code class="parameter">flags</code> para representar en una
        máscara cualquier backend (i.e. al modificar
        la variable de entorno <var class="varname">LIBEV_FLAGS</var>).
       </span>
      </dd>
     
    </dl>
   </p>

   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <span class="simpara">
     Para el bucle por defecto, durante la fase de inicialización
     del módulo, <code class="literal">Ev</code> registra llamadas a
     <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#FUNCTIONS_CONTROLLING_EVENT_LOOPS_CO" class="link external">&raquo;&nbsp;ev_loop_fork</a>
     vía <code class="literal">pthread_atfork</code> (si está disponible).
    </span>
   </p></blockquote>
   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <span class="simpara">
     Hay métodos que proporcionan acceso a la
     <em>bucle de eventos por defecto</em>
     en la clase <span class="classname"><strong class="classname">Ev</strong></span>
     (i.e. <span class="methodname"><a href="ev.iteration.php" class="methodname">Ev::iteration()</a></span>,
     <span class="methodname"><a href="ev.depth.php" class="methodname">Ev::depth()</a></span>, etc.) Para los
     <em>bucles personalizados</em> (creados con
     <span class="methodname"><a href="evloop.construct.php" class="methodname">EvLoop::__construct()</a></span>), estos
     valores pueden ser accesibles vía las propiedades y los
     métodos correspondientes de la clase
     <span class="classname"><a href="class.evloop.php" class="classname">EvLoop</a></span>.
    </span>
    <span class="simpara">
     La instancia del bucle de eventos por defecto puede ser recuperada
     vía el método <span class="methodname"><a href="evloop.defaultloop.php" class="methodname">EvLoop::defaultLoop()</a></span>.
    </span>
   </p></blockquote>
  </div>

 </div>

 












































































































<h2>Tabla de contenidos</h2><ul class="chunklist chunklist_reference"><li><a href="ev.backend.php">Ev::backend</a> — Devuelve un integer que describe el backend utilizado por libev</li><li><a href="ev.depth.php">Ev::depth</a> — Retorna la profundidad de recursi&oacute;n</li><li><a href="ev.embeddablebackends.php">Ev::embeddableBackends</a> — Devuelve el conjunto de backends que pueden ser encapsulados en otros bucles de eventos</li><li><a href="ev.feedsignal.php">Ev::feedSignal</a> — Simula la recepci&oacute;n de una se&ntilde;al</li><li><a href="ev.feedsignalevent.php">Ev::feedSignalEvent</a> — Simula un evento de se&ntilde;al en el bucle por omisi&oacute;n</li><li><a href="ev.iteration.php">Ev::iteration</a> — Devuelve el n&uacute;mero de veces que el bucle de eventos por omisi&oacute;n
   ha sido solicitado para un nuevo evento</li><li><a href="ev.now.php">Ev::now</a> — Devuelve el tiempo de inicio de la &uacute;ltima iteraci&oacute;n del bucle de eventos por omisi&oacute;n</li><li><a href="ev.nowupdate.php">Ev::nowUpdate</a> — Establece el tiempo actual solicit&aacute;ndolo al kernel; actualiza el
   tiempo devuelto por Ev::now durante la ejecuci&oacute;n</li><li><a href="ev.recommendedbackends.php">Ev::recommendedBackends</a> — Devuelve una m&aacute;scara de octetos de backends recomendados
   para la plataforma actual</li><li><a href="ev.resume.php">Ev::resume</a> — Reanuda el bucle de eventos por defecto previamente detenido</li><li><a href="ev.run.php">Ev::run</a> — Inicia la verificaci&oacute;n de eventos y llama a las funciones de retrollamada para el bucle por defecto</li><li><a href="ev.sleep.php">Ev::sleep</a> — Bloquea el proceso durante un n&uacute;mero de segundos proporcionado</li><li><a href="ev.stop.php">Ev::stop</a> — Detiene el bucle de eventos predeterminado</li><li><a href="ev.supportedbackends.php">Ev::supportedBackends</a> — Devuelve el conjunto de backends soportados por la configuraci&oacute;n actual de libev</li><li><a href="ev.suspend.php">Ev::suspend</a> — Suspende el bucle de eventos predeterminado</li><li><a href="ev.time.php">Ev::time</a> — Devuelve el tiempo actual desde la &eacute;poca Unix</li><li><a href="ev.verify.php">Ev::verify</a> — Efect&uacute;a verificaciones internas de consistencia (para la depuraci&oacute;n)</li></ul>
</div>
<?php manual_footer($setup); ?>