<?php
-/**
- * @file src/Util/Lock.php
- */
+
namespace Friendica\Core;
/**
*/
use Friendica\Core\Cache\CacheDriverFactory;
+use Friendica\Core\Cache\IMemoryCacheDriver;
/**
* @brief This class contain Functions for preventing parallel execution of functions
try {
switch ($lock_driver) {
case 'memcache':
- $cache_driver = CacheDriverFactory::create('memcache');
- self::$driver = new Lock\CacheLockDriver($cache_driver);
- break;
-
case 'memcached':
- $cache_driver = CacheDriverFactory::create('memcached');
- self::$driver = new Lock\CacheLockDriver($cache_driver);
- break;
-
case 'redis':
- $cache_driver = CacheDriverFactory::create('redis');
- self::$driver = new Lock\CacheLockDriver($cache_driver);
+ $cache_driver = CacheDriverFactory::create($lock_driver);
+ if ($cache_driver instanceof IMemoryCacheDriver) {
+ self::$driver = new Lock\CacheLockDriver($cache_driver);
+ }
break;
case 'database':
if ($cache_driver != 'database') {
try {
$lock_driver = CacheDriverFactory::create($cache_driver);
- self::$driver = new Lock\CacheLockDriver($lock_driver);
+ if ($lock_driver instanceof IMemoryCacheDriver) {
+ self::$driver = new Lock\CacheLockDriver($lock_driver);
+ }
return;
} catch (\Exception $exception) {
logger('Using Cache driver for locking failed: ' . $exception->getMessage());
*
* @return boolean Was the lock successful?
*/
- public static function acquireLock($key, $timeout = 120)
+ public static function acquire($key, $timeout = 120)
{
return self::getDriver()->acquireLock($key, $timeout);
}
* @brief Releases a lock if it was set by us
*
* @param string $key Name of the lock
- * @return mixed
+ * @return void
*/
- public static function releaseLock($key)
+ public static function release($key)
{
- return self::getDriver()->releaseLock($key);
+ self::getDriver()->releaseLock($key);
}
/**