(PECL pthreads >= 0.34)
Cond::wait — 条件を待つ
$condition
,
long
$mutex
[,
long
$timeout
] )条件変数上でシグナルを待ちます。オプションで、最大の待ち時間を指定できます。
condition
Cond::create() を呼んで取得した条件変数へのハンドル。
mutex
呼び出し元が Mutex::create() を呼んで所有 (ロック) しているミューテックスへのハンドル。
timeout
オプションのタイムアウト時間。マイクロ秒 (100 万分の 1 秒) 単位。
成功したかどうかを返します。
例1 条件の待機
<?php
/** この例は、プロセスをハングさせることに注意しましょう **/
$mutex = Mutex::create(true);
/** "new" は使えません。Cond は PHP のオブジェクトではありません **/
$cond = Cond::create();
/** 呼び出し側は、関連するミューテックスをロックしてからブロードキャストを呼ぶ必要があります **/
var_dump(Cond::wait($mutex, $cond));
/** 自分が作った Cond は常に破棄します **/
Cond::destroy($cond);
Mutex::unlock($mutex);
Mutex::destroy($mutex);
?>
上の例の出力は以下となります。
int(49685473)