]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Lock.php
Merge pull request #5824 from annando/fix-follow
[friendica.git] / src / Core / Lock.php
index 7db0ea0db6ba69d186b0b608963aea904b513e08..9892f1f4e4d7e74e2dcab9212da8a09f4943401f 100644 (file)
@@ -1,7 +1,5 @@
 <?php
-/**
- * @file src/Util/Lock.php
- */
+
 namespace Friendica\Core;
 
 /**
@@ -10,6 +8,7 @@ namespace Friendica\Core;
  */
 
 use Friendica\Core\Cache\CacheDriverFactory;
+use Friendica\Core\Cache\IMemoryCacheDriver;
 
 /**
  * @brief This class contain Functions for preventing parallel execution of functions
@@ -28,18 +27,12 @@ class Lock
                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':
@@ -85,7 +78,9 @@ class Lock
                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());
@@ -118,7 +113,7 @@ class Lock
         *
         * @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);
        }
@@ -127,11 +122,11 @@ class Lock
         * @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);
        }
 
        /**