(PECL pthreads >= 0.36)
Stackable::wait — Synchronization
$timeout
] )Waits for notification from the Stackable
timeout
An optional timeout in millionths of a second.
A boolean indication of success
Exemplo #1 Notifications and Waiting
<?php
class Work extends Stackable {
public function run() {
$this->synchronized(function($object){
printf("%s Synchronized\n", __CLASS__);
$object->notify();
}, $this);
}
}
class My extends Worker {
public function run() {
/** ... **/
}
}
$my = new My();
$my->start();
$work = array(new Work());
$my->stack($work[0]);
/** send notification to the waiting thread **/
$work[0]->synchronized(function($object){
printf("Process Synchronized\n");
$object->wait();
}, $work[0]);
?>
O exemplo acima irá imprimir:
Process Synchronized Work Synchronized