Php/docs/threaded.synchronized

From Get docs

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronizedSynchronization


Description

public Threaded::synchronized ( Closure $block , mixed ...$args ) : mixed

Executes the block while retaining the referenced objects synchronization lock for the calling context


Parameters

block
The block of code to execute
args
Variable length list of arguments to use as function arguments to the block


Return Values

The return value from the block


Examples

Example #1 Synchronizing

<?phpclass 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)