Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php
Строк: 61
<?php

namespace IlluminateCache;

class 
MemcachedLock extends Lock
{
    
/**
     * The Memcached instance.
     *
     * @var Memcached
     */
    
protected $memcached;

    
/**
     * Create a new lock instance.
     *
     * @param  Memcached  $memcached
     * @param  string  $name
     * @param  int  $seconds
     * @param  string|null  $owner
     * @return void
     */
    
public function __construct($memcached$name$seconds$owner null)
    {
        
parent::__construct($name$seconds$owner);

        
$this->memcached $memcached;
    }

    
/**
     * Attempt to acquire the lock.
     *
     * @return bool
     */
    
public function acquire()
    {
        return 
$this->memcached->add(
            
$this->name$this->owner$this->seconds
        
);
    }

    
/**
     * Release the lock.
     *
     * @return bool
     */
    
public function release()
    {
        if (
$this->isOwnedByCurrentProcess()) {
            return 
$this->memcached->delete($this->name);
        }

        return 
false;
    }

    
/**
     * Releases this lock in disregard of ownership.
     *
     * @return void
     */
    
public function forceRelease()
    {
        
$this->memcached->delete($this->name);
    }

    
/**
     * Returns the owner value written into the driver for this lock.
     *
     * @return mixed
     */
    
protected function getCurrentOwner()
    {
        return 
$this->memcached->get($this->name);
    }
}
Онлайн: 0
Реклама