(PECL pthreads >= 2.0.0)
Synchronization
public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )
Executes the block while retaining the referenced objects synchronization lock for the calling context
Parameters:
block
The block of code to execute
...
Variable length list of arguments to use as function arguments to the block
Returns:
The return value from the block
Examples:
Synchronizing
<?php class My extends Thread { public function run() { $this->synchronized(function($thread){ if (!$thread->done) $thread->wait(); }, $this); } } $my = new My(); $my->start(); $my->synchronized(function($thread){ $thread->done = true; $thread->notify(); }, $my); var_dump($my->join()); ?>
The above example will output:
bool(true)
Please login to continue.