(PECL pthreads >= 0.40)
Stackable::synchronized — 同期処理
ブロックを実行し、その間は現在のコンテキストでの同期ロックを保持します。
block
実行するコードブロック。
...
可変長の引数リスト。ブロックへの関数の引数として使います。
ブロックから返された値を返します。
例1 同期処理
<?php
class My extends Stackable {
public function run() {
$this->synchronized(function($object){
var_dump($object->isWaiting());
$object->notify();
}, $this);
}
}
/** ワーカーを作ります **/
$my = new My();
/** my はスタックです **/
/** ここで何かを実行します **/
$my->synchronized(function($object){
$object->wait();
}, $my);
?>
上の例の出力は以下となります。
bool(/** true or false **/)