Threaded::synchronized

Synchronization

&reftitle.description; public `mixed` `Threaded::synchronized` `Closure` `block` `mixed` `args`

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

&reftitle.parameters;

`block`

- The block of code to execute

`args`

- Variable length list of arguments to use as function arguments to the block

&reftitle.returnvalues;

The return value from the block

&reftitle.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());
    ?>

&example.outputs;

    bool(true)