public function Redis_Lock_Backend_PhpRedis::lockReleaseAll in Redis 7.2
Same name and namespace in other branches
- 7 lib/Redis/Lock/Backend/PhpRedis.php \Redis_Lock_Backend_PhpRedis::lockReleaseAll()
Release all locks for the given lock token identifier.
Parameters
string $lockId = NULL: (optional) If none given, remove all lock from the current page.
Overrides Redis_Lock_Backend_Interface::lockReleaseAll
File
- lib/
Redis/ Lock/ Backend/ PhpRedis.php, line 119
Class
- Redis_Lock_Backend_PhpRedis
- Predis lock backend implementation.
Code
public function lockReleaseAll($lock_id = NULL) {
if (!isset($lock_id) && empty($this->_locks)) {
return;
}
$client = Redis_Client::getClient();
$id = isset($lock_id) ? $lock_id : $this
->getLockId();
// We can afford to deal with a slow algorithm here, this should not happen
// on normal run because we should have removed manually all our locks.
foreach ($this->_locks as $name => $foo) {
$key = $this
->getKey($name);
$owner = $client
->get($key);
if (empty($owner) || $owner == $id) {
$client
->delete($key);
}
}
}