![]() 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/mautic.corals.io/vendor/malkusch/lock/classes/mutex/ |
<?php namespace malkusch\lock\mutex; use Memcached; /** * Memcached based spinlock implementation. * * @author Markus Malkusch <[email protected]> * @link bitcoin:1P5FAZ4QhXCuwYPnLZdk3PJsqePbu1UDDA Donations * @license WTFPL */ class MemcachedMutex extends SpinlockMutex { /** * @var Memcached The connected Memcached API. */ private $memcache; /** * The memcache key prefix. * @internal */ const PREFIX = "lockd_"; /** * Sets the lock's name and the connected Memcached API. * * The Memcached API needs to have at least one server in its pool. I.e. * it has to be added with Memcached::addServer(). * * @param string $name The lock name. * @param Memcached $memcache The connected Memcached API. * @param int $timeout The time in seconds a lock expires, default is 3. * * @throws \LengthException The timeout must be greater than 0. */ public function __construct($name, Memcached $memcache, $timeout = 3) { parent::__construct($name, $timeout); $this->memcache = $memcache; } /** * @internal */ protected function acquire($key, $expire) { return $this->memcache->add($key, true, $expire); } /** * @internal */ protected function release($key) { return $this->memcache->delete($key); } }