![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/framework/Lock/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\Lock; use Magento\Framework\Exception\RuntimeException; /** * Proxy for LockManagers */ class Proxy implements LockManagerInterface { /** * The factory to create LockManagerInterface implementation * * @var LockBackendFactory */ private $factory; /** * A LockManagerInterface implementation * * @var LockManagerInterface */ private $locker; /** * @param LockBackendFactory $factory The factory to create LockManagerInterface implementation */ public function __construct(LockBackendFactory $factory) { $this->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; } }