<?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 => 'ja',
  ),
  'this' => 
  array (
    0 => 'class.ev.php',
    1 => 'Ev',
    2 => 'Ev クラス',
  ),
  'up' => 
  array (
    0 => 'book.ev.php',
    1 => 'Ev',
  ),
  'prev' => 
  array (
    0 => 'ev.periodic-modes.php',
    1 => 'Periodic ウォッチャーの操作モード',
  ),
  'next' => 
  array (
    0 => 'ev.backend.php',
    1 => 'Ev::backend',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    '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">Ev クラス</h1>
 
 <div class="partintro"><p class="verinfo">(PECL ev &gt;= 0.2.0)</p>

  <div class="section" id="ev.intro">
   <h2 class="title">はじめに</h2>
   <p class="simpara">
    Ev は静的クラスで、デフォルトのループへのアクセスや各種共通操作へのアクセスを提供します。
   </p>
  </div>

  <div class="section" id="ev.synopsis">
   <h2 class="title">クラス概要</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">/* 定数 */</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">/* メソッド */</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">定義済み定数</h2>

  <p class="para" id="ev.constants.loop-flags">
    ループを作るときに渡すフラグ

    <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">
        デフォルトのフラグの値。
       </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">
        このフラグを使う (あるいは setuid や setgid でプログラムを実行する) と、
        <code class="literal">libev</code> は環境変数
        <var class="varname">LIBEV_FLAGS</var> を見ません。
        それ以外の場合 (デフォルト) は、
        <var class="varname">LIBEV_FLAGS</var> が見つかった場合は
        その内容でフラグを上書きします。パフォーマンステストやバグの調査のときに有用です。
       </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">
        libev が繰り返しのたびにフォークをチェックするようにします。毎回手動で
        <span class="methodname"><a href="evloop.fork.php" class="methodname">EvLoop::fork()</a></span> を呼ぶことがなくなります。
        これを実現するために、ループ内での繰り返しの旅に
        <code class="literal">getpid()</code> を呼んでいます。
        そのため、繰り返しの回数が増えるとイベントループがスローダウンするかもしれませんが、
        通常は気になるほどではありません。このフラグの設定を上書きしたり、
        環境変数 <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">
        このフラグを指定すると、
        <code class="literal">libev</code>
        は <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>
        ウォッチャーに
        <code class="literal">inotify</code> API を使わなくなります。
        このフラグは inotify ファイルディスクリプタを節約するのに便利です。
        これを使わなければ、<code class="literal">ev_stat</code>
        ウォッチャーを使ったループのたびに
        <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">
        このフラグを指定すると、
        <code class="literal">libev</code>
        は
        <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>
        (および
        <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>
        ) ウォッチャーに
        <code class="literal">signalfd</code> API を使おうとします。
        この API はシグナルを同期的に配送し、高速に処理したり
        キューに入ったシグナルデータを取得できるようにしたりします。
        また、スレッドを使ったときのシグナル処理も、
        スレッド内でシグナルが適切にブロックされている限りはシンプルになります。
        デフォルトでは <code class="literal">signalfd</code> を使いません。
       </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">
        このフラグを指定すると、
        <code class="literal">libev</code> はシグナルのマスクを変更しないようにします。
        具体的には、シグナルが受信されるまではブロックしないようになるということです。
       </span>
       <span class="simpara">
        これは、自前のシグナル処理をするときに便利です。
        また、特定のスレッドでだけシグナルを処理するという場合にも有用です。
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.run-flags">
    <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>
    あるいは
    <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">
        イベントループが新しいイベントを探し、
        新しいイベントや未処理のイベントを処理するけれども、
        もしイベントが見つからない場合は、最初のループですぐに呼び出し元に制御を戻します。
        イベントを待つためにプロセスをブロックしたりはしません。
        これは、時間のかかる計算をしているときのポーリングなどに便利です。
        プログラムの動きを止めることなく新しいイベントを処理できます。
       </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">
        イベントループが (必要なら待ち続けてでも) 新しいイベントを探し、
        その新しいイベントや未処理のイベントを処理します。
        少なくとも一つのイベントがやってくるまで
        (libev 自身のイベント間隔になるでしょう。
        そのため、ユーザー低位のコールバックが呼ばれる保証はありません) プロセスをブロックし
        ループ処理の終了後に呼び出し元に制御を戻します。
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.break-flags">
    <span class="methodname"><a href="ev.stop.php" class="methodname">Ev::stop()</a></span>
    あるいは
    <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">
        ブレーク操作をキャンセルします。
       </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">
        一番内側の
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>
        (あるいは
        <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">
        ネストしたすべての
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>
        (あるいは
        <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">
    ウォッチャーの優先度

    <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">
        最小の優先度。
       </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">
        最大の優先度。
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.watcher-revents">
    受信したイベントのビットマスク

    <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">
        <span class="classname"><a href="class.evio.php" class="classname">EvIo</a></span>
        ウォッチャーが読み込み可能になったときのファイルディスクリプタ。
       </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">
        <span class="classname"><a href="class.evio.php" class="classname">EvIo</a></span>
        ウォッチャーが書き込み可能になったときのファイルディスクリプタ。
       </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">
        <span class="classname"><a href="class.evtimer.php" class="classname">EvTimer</a></span>
        ウォッチャーがタイムアウトしました。
       </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">
        <span class="classname"><a href="class.evperiodic.php" class="classname">EvPeriodic</a></span>
        ウォッチャーがタイムアウトしました。
       </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">
        <span class="methodname"><a href="evsignal.construct.php" class="methodname">EvSignal::__construct()</a></span>
        のコンストラクタで指定したシグナルを受信しました。
       </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">
        <span class="methodname"><a href="evchild.construct.php" class="methodname">EvChild::__construct()</a></span>
        のコンストラクタで指定した
        <code class="parameter">pid</code>
        が、状態の変更を受信しました。
       </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">
        <span class="classname"><a href="class.evstat.php" class="classname">EvStat</a></span>
        ウォッチャーで指定したパスが、その属性を変更しました。
       </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">
        他のウォッチャーが何もすることがなくなったときに、
        <span class="classname"><a href="class.evidle.php" class="classname">EvIdle</a></span>
        ウォッチャーが動作します。
       </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">
        すべての
        <span class="classname"><a href="class.evprepare.php" class="classname">EvPrepare</a></span>
        ウォッチャーが、
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>
        の開始前に起動しました。つまり、
        イベントループがスリープしたり新しいイベントのポーリングをしたりする直前に
        <span class="classname"><a href="class.evprepare.php" class="classname">EvPrepare</a></span>
        ウォッチャーが起動するということになります。
       </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">
        すべての
        <span class="classname"><a href="class.evcheck.php" class="classname">EvCheck</a></span>
        ウォッチャーが、
        <span class="methodname"><a href="ev.run.php" class="methodname">Ev::run()</a></span>
        が新しいイベントをとりまとめた直後
        (ただし受信したイベントのコールバックをキューに入れる前)
        にキューに入ります。つまり、
        イベントループ内で優先度が同じ (あるいはより低い) ウォッチャーより前に
        <span class="classname"><a href="class.evcheck.php" class="classname">EvCheck</a></span> ウォッチャーが起動するということになります。
       </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">
        <span class="classname"><a href="class.evembed.php" class="classname">EvEmbed</a></span>
        で指定した埋め込みイベントループのウォッチャーが注目する必要があります。
       </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">
        まだ
        <code class="literal">libev</code>
        で送信したりそれ以外の使いかたをしたりはしていませんが、
        <code class="literal">libev</code>
        ユーザーが (<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">
        指定されていないエラーが発生し、ウォッチャーが停止しました。
        これが発生する原因として考えられるのは、
        <code class="literal">libev</code> がメモリ不足でウォッチャーをきちんと開始できなかった場合や
        ファイルディスクリプタが閉じてしまった場合などがあります。
        <code class="literal">libev</code> は、これらに関してはアプリケーションのバグとみなします。
        詳細は
        <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#ANATOMY_OF_A_WATCHER_CONTENT" class="link external">&raquo;&nbsp;ANATOMY
    OF A WATCHER</a>
        を参照ください。
       </span>
      </dd>
     
    </dl>
   </p>

   <p class="para" id="ev.constants.watcher-backends">
    バックエンドのフラグ

    <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) バックエンド</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) バックエンド</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">
        Linux 限定の
        <code class="literal">epoll(7)</code>
        バックエンド。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">
        <code class="literal">kqueue</code>
        バックエンド。大半の BSD システムで利用します。
        <span class="classname"><a href="class.evembed.php" class="classname">EvEmbed</a></span> ウォッチャーを使って、
        kqueue バックエンドのループを別のループに埋め込むことができます。
        たとえば、
        <code class="literal">kqueue</code> バックエンドのループを作って、
        それをソケットに対してだけ使うこともできます。
       </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">
        Solaris 8 バックエンド。現時点では未実装です。
       </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">
        Solaris 10 のイベントポート機構で、規模が大きくなっても対応できます。
       </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">
        壊れているものも含めて、すべてのバックエンドを試します。
        これを明示的に使うことは推奨しません。ビット演算子を使って、
        <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>
        のようにするか、
        <span class="methodname"><a href="ev.recommendedbackends.php" class="methodname">Ev::recommendedBackends()</a></span>
        を使うか、あるいは何もバックエンドを指定しないようにしましょう。
       </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">
        これはバックエンドではなく、
        <code class="parameter">flags</code> の中のすべてのバックエンドビットをマスクするものです。
        たとえば、環境変数
        <var class="varname">LIBEV_FLAGS</var>
        を変更するときに使います。
       </span>
      </dd>
     
    </dl>
   </p>

   <blockquote class="note"><p><strong class="note">注意</strong>: 
    <span class="simpara">
     デフォルトのループの場合は、モジュールの初期化時に
     <code class="literal">Ev</code> が
     (もし使えれば) <code class="literal">pthread_atfork</code> を使って
     <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>
     の呼び出しを登録します。
    </span>
   </p></blockquote>
   <blockquote class="note"><p><strong class="note">注意</strong>: 
    <span class="simpara">
     <span class="classname"><strong class="classname">Ev</strong></span> クラスには、
     <em>デフォルトのイベントループ</em> にアクセスするメソッドが用意されています
     (<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> など)。
     <em>カスタムループ</em>
     (<span class="methodname"><a href="evloop.construct.php" class="methodname">EvLoop::__construct()</a></span> で作ったもの)
     の場合、これらの値にアクセスするには
     <span class="classname"><a href="class.evloop.php" class="classname">EvLoop</a></span> クラスのプロパティやメソッドを使います。
    </span>
    <span class="simpara">
     デフォルトのイベントループ自体のインスタンスを取得するには
     <span class="methodname"><a href="evloop.defaultloop.php" class="methodname">EvLoop::defaultLoop()</a></span>
     メソッドを使います。
    </span>
   </p></blockquote>
  </div>

 </div>

 









































































































<h2>目次</h2><ul class="chunklist chunklist_reference"><li><a href="ev.backend.php">Ev::backend</a> — libev が使うバックエンドを表す整数値を返す</li><li><a href="ev.depth.php">Ev::depth</a> — 再帰の深さを返す</li><li><a href="ev.embeddablebackends.php">Ev::embeddableBackends</a> — 他のイベントループに埋め込めるバックエンド群を返す</li><li><a href="ev.feedsignal.php">Ev::feedSignal</a> — シグナルイベントを Ev に送る</li><li><a href="ev.feedsignalevent.php">Ev::feedSignalEvent</a> — シグナルイベントの情報をデフォルトループに送る</li><li><a href="ev.iteration.php">Ev::iteration</a> — デフォルトのイベントループが新しいイベントをポーリングした回数を返す</li><li><a href="ev.now.php">Ev::now</a> — デフォルトのイベントループで直近の処理が始まった時刻を返す</li><li><a href="ev.nowupdate.php">Ev::nowUpdate</a> — カーネルに問い合わせて現在時刻を確認し、処理中の Ev::now が返す時刻を更新する</li><li><a href="ev.recommendedbackends.php">Ev::recommendedBackends</a> — 現在のプラットフォーム上でおすすめのバックエンドのビットマスクを返す</li><li><a href="ev.resume.php">Ev::resume</a> — 一時停止していたデフォルトのイベントループを再開させる</li><li><a href="ev.run.php">Ev::run</a> — イベントのチェックとデフォルトループのコールバックの呼び出しを開始する</li><li><a href="ev.sleep.php">Ev::sleep</a> — 指定した秒数だけプロセスをブロックする</li><li><a href="ev.stop.php">Ev::stop</a> — デフォルトのイベントループを止める</li><li><a href="ev.supportedbackends.php">Ev::supportedBackends</a> — 現在の libev の構成でサポートするバックエンド群を返す</li><li><a href="ev.suspend.php">Ev::suspend</a> — デフォルトのイベントループを一時停止する</li><li><a href="ev.time.php">Ev::time</a> — epoch から現在時刻までの秒数を返す</li><li><a href="ev.verify.php">Ev::verify</a> — 内部の整合性をチェックする (デバッグ用)</li></ul>
</div>
<?php manual_footer($setup); ?>