<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.event.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'event.persistence.php',
    1 => 'О постоянных событиях',
    2 => 'О постоянных событиях',
  ),
  'up' => 
  array (
    0 => 'book.event.php',
    1 => 'Event',
  ),
  'prev' => 
  array (
    0 => 'event.flags.php',
    1 => 'Флаги событий',
  ),
  'next' => 
  array (
    0 => 'event.callbacks.php',
    1 => 'Callback-функции',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/event/event.persistence.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="event.persistence" class="chapter">
 <h1 class="title">О постоянных событиях</h1>

 <p class="para">
  По умолчанию, событие в статусе ожидания становится активным, когда
  файловый дескриптор события становится доступен для записи или чтения,
  или истёк период ожидания. Статус ожидания снимается с события непосредственно перед
  запуском callback-функции события. Поэтому из callback-функции события
  на событии вызывают метод <span class="methodname"><a href="event.add.php" class="methodname">Event::add()</a></span>,
  чтобы снова перевести событие в статус ожидания.
 </p>
 <p class="para">
  Событие становится <em>постоянным</em>,
  если на событии установили флаг <strong><code><a href="class.event.php#event.constants.persist">Event::PERSIST</a></code></strong>.
  Это означает, что событие остаётся в статусе ожидания, даже если
  запущена callback-функция события.
  Флаг постоянного снимают с события путём
  вызова на событии метода <span class="methodname"><a href="event.del.php" class="methodname">Event::del()</a></span>.
 </p>
 <p class="para">
  Время ожидания постоянного события сбрасывается каждый раз, когда запускается
  callback-функция события. Поэтому, если для события установили флаги
  <strong><code><a href="class.event.php#event.constants.read">Event::READ</a></code></strong>
  <code class="literal">|</code>
  <strong><code><a href="class.event.php#event.constants.persist">Event::PERSIST</a></code></strong> и время ожидания равно 5 секундам,
  событие станет активно в следующих случаях:
 </p>
 <ol type="1">
  <li class="listitem">
   <p class="para">
    Каждый раз, когда сокет или дескриптор файла готов к чтению.
   </p>
  </li>
  <li class="listitem">
   <p class="para">
    Каждый раз, когда прошли пять секунд с момента последнего события.
   </p>
  </li>
 </ol>
 <p class="para">
  Дополнительную информацию даёт раздел
  «<a href="http://www.wangafu.net/~nickm/libevent-book/Ref4_event.html#_about_event_persistence" class="link external">&raquo;&nbsp;Быстрое переносимое неблокирующее сетевое программирование с Libevent, о постоянных событиях</a>».
 </p>
</div>
<?php manual_footer($setup); ?>