%PDF- %PDF-factory = $factory; } /** * @inheritdoc * * @throws RuntimeException */ public function isLocked(string $name): bool { return $this->getLocker()->isLocked($name); } /** * @inheritdoc * * @throws RuntimeException */ public function lock(string $name, int $timeout = -1): bool { return $this->getLocker()->lock($name, $timeout); } /** * @inheritdoc * * @throws RuntimeException */ public function unlock(string $name): bool { return $this->getLocker()->unlock($name); } /** * Gets LockManagerInterface implementation using Factory * * @return LockManagerInterface * @throws RuntimeException */ private function getLocker(): LockManagerInterface { if (!$this->locker) { $this->locker = $this->factory->create(); } return $this->locker; } }