Icicle\Concurrent\Threading\Parcel::synchronized PHP Метод

synchronized() публичный Метод

public synchronized ( callable $callback ) : Generator
$callback callable
Результат Generator
    public function synchronized(callable $callback) : \Generator
    {
        /** @var \Icicle\Concurrent\Sync\Lock $lock */
        $lock = (yield from $this->mutex->acquire());
        try {
            $value = $this->unwrap();
            $result = (yield $callback($value));
            $this->wrap(null === $result ? $value : $result);
        } finally {
            $lock->release();
        }
        return $result;
    }