EvPrepare クラスはじめにEvPrepare ウォッチャーと EvCheck ウォッチャーは、 通常はペアで使います。 EvPrepare ウォッチャーはプロセスをブロックする前に起動し、 EvCheck はブロックした後に起動します。 EvLoop::run あるいはそれに類するメソッドや関数 (現在のイベントループに入るもの) は、EvPrepare ウォッチャーや EvCheck ウォッチャーからは呼べません。 現在のループ以外のループは問題ありません。 その理由は、これらのウォッチャーの中では再帰をチェックする必要がないからです。 つまり、処理の流れは常に EvPrepare -> ブロック -> EvCheck となるので、これらのウォッチャーは常にペアで呼ばれ、ブロッキング呼び出しの前後を囲むことになります。 主な利用目的は他のイベント機構を libev に統合することで、 少し高度な使いかたになります。変数の変更を追跡したり 自前のウォッチャーを実装したり、net-snmp やコルーチンライブラリを統合したりといった、 さまざまな用途で使えます。 また、何らかのデータをキャッシュしてブロッキングの前にフラッシュするなどの用途で使えることもあります。
EvCheck には最高の優先度
( また、EvCheck ウォッチャーはイベントをアクティブにしたり送信したりしてはいけません。 libev では対応してはいますが、 他の EvCheck ウォッチャーが仕事をする前に実行される可能性があります。 クラス概要
EvPrepare
class EvPrepare
extends
EvWatcher
{
/* 継承したプロパティ */
public
$is_active;
public
$data;
public
$is_pending;
public
$priority;
/* メソッド */
public
__construct(
string
$callback
,
string
$data
= ?,
string
$priority
= ?)final
public
static
EvPrepare createStopped(
callable
$callback
,
mixed
$data
= null
,
int
$priority
= 0
)/* 継承したメソッド */
public
int EvWatcher::clear()
public
void EvWatcher::feed(
int
$revents
)public
EvLoop EvWatcher::getLoop()
public
void EvWatcher::invoke(
int
$revents
)public
bool EvWatcher::keepalive(
bool
$value
= ?)public
void EvWatcher::setCallback(
callable
$callback
)public
void EvWatcher::start()
public
void EvWatcher::stop()
}
|