]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Lock/ILockDriver.php
Merge remote-tracking branch 'upstream/2019.03-RC' into worker2
[friendica.git] / src / Core / Lock / ILockDriver.php
index b066361be6ad20d081e7bd307433408939e5fe8d..7cbaa4fc6908a701721c1886705a3a85c2ff3fae 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
 namespace Friendica\Core\Lock;
+use Friendica\Core\Cache;
 
 /**
  * Lock Driver Interface
@@ -10,29 +11,39 @@ namespace Friendica\Core\Lock;
 interface ILockDriver
 {
        /**
+        * Checks, if a key is currently locked to a or my process
         *
-        * @brief Acquires a lock for a given name
+        * @param string $key           The name of the lock
+        * @return bool
+        */
+       public function isLocked($key);
+
+       /**
+        *
+        * Acquires a lock for a given name
         *
         * @param string  $key      The Name of the lock
         * @param integer $timeout  Seconds until we give up
+        * @param integer $ttl      Seconds The lock lifespan, must be one of the Cache constants
         *
         * @return boolean Was the lock successful?
         */
-       public function acquireLock($key, $timeout = 120);
+       public function acquireLock($key, $timeout = 120, $ttl = Cache::FIVE_MINUTES);
 
        /**
-        * @brief Releases a lock if it was set by us
+        * Releases a lock if it was set by us
         *
-        * @param string $key Name of the lock
+        * @param string $key      The Name of the lock
+        * @param bool   $override Overrides the lock to get released
         *
-        * @return mixed
+        * @return void
         */
-       public function releaseLock($key);
+       public function releaseLock($key, $override = false);
 
        /**
-        * @brief Releases all lock that were set by us
+        * Releases all lock that were set by us
         *
         * @return void
         */
        public function releaseAll();
-}
\ No newline at end of file
+}