]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Lock/DatabaseLockDriver.php
Add missing L10n::popLang calls
[friendica.git] / src / Core / Lock / DatabaseLockDriver.php
index 8f8e174214184423a35ff4fbdf41c0c20939186e..a8788d1f45bf1400b9e96a125c10c28bc9891394 100644 (file)
@@ -2,8 +2,8 @@
 
 namespace Friendica\Core\Lock;
 
-use dba;
-use Friendica\Database\DBM;
+use Friendica\Core\Cache;
+use Friendica\Database\DBA;
 use Friendica\Util\DateTimeFormat;
 
 /**
@@ -14,35 +14,33 @@ class DatabaseLockDriver extends AbstractLockDriver
        /**
         * (@inheritdoc)
         */
-       public function acquire($key, $timeout = 120)
+       public function acquireLock($key, $timeout = 120, $ttl = Cache::FIVE_MINUTES)
        {
                $got_lock = false;
                $start = time();
 
                do {
-                       dba::lock('locks');
-                       $lock = dba::selectFirst('locks', ['locked', 'pid'], ['`name` = ? AND `expires` >= ?', $key, DateTimeFormat::utcNow()]);
+                       DBA::lock('locks');
+                       $lock = DBA::selectFirst('locks', ['locked', 'pid'], ['`name` = ? AND `expires` >= ?', $key, DateTimeFormat::utcNow()]);
 
-                       if (DBM::is_result($lock)) {
+                       if (DBA::isResult($lock)) {
                                if ($lock['locked']) {
                                        // We want to lock something that was already locked by us? So we got the lock.
                                        if ($lock['pid'] == getmypid()) {
                                                $got_lock = true;
-                                               $this->markAcquire($key);
                                        }
                                }
                                if (!$lock['locked']) {
-                                       dba::update('locks', ['locked' => true, 'pid' => getmypid(), 'expires' => DateTimeFormat::utc('now + 300seconds')], ['name' => $key]);
+                                       DBA::update('locks', ['locked' => true, 'pid' => getmypid(), 'expires' => DateTimeFormat::utc('now + ' . $ttl . 'seconds')], ['name' => $key]);
                                        $got_lock = true;
-                                       $this->markAcquire($key);
                                }
                        } else {
-                               dba::insert('locks', ['name' => $key, 'locked' => true, 'pid' => getmypid(), 'expires' => DateTimeFormat::utc('now + 300seconds')]);
+                               DBA::insert('locks', ['name' => $key, 'locked' => true, 'pid' => getmypid(), 'expires' => DateTimeFormat::utc('now + ' . $ttl . 'seconds')]);
                                $got_lock = true;
                                $this->markAcquire($key);
                        }
 
-                       dba::unlock();
+                       DBA::unlock();
 
                        if (!$got_lock && ($timeout > 0)) {
                                usleep(rand(100000, 2000000));
@@ -55,9 +53,9 @@ class DatabaseLockDriver extends AbstractLockDriver
        /**
         * (@inheritdoc)
         */
-       public function release($key)
+       public function releaseLock($key)
        {
-               dba::delete('locks', ['name' => $key, 'pid' => getmypid()]);
+               DBA::delete('locks', ['name' => $key, 'pid' => getmypid()]);
 
                $this->markRelease($key);
 
@@ -69,7 +67,7 @@ class DatabaseLockDriver extends AbstractLockDriver
         */
        public function releaseAll()
        {
-               dba::delete('locks', ['pid' => getmypid()]);
+               DBA::delete('locks', ['pid' => getmypid()]);
 
                $this->acquiredLocks = [];
        }
@@ -79,9 +77,9 @@ class DatabaseLockDriver extends AbstractLockDriver
         */
        public function isLocked($key)
        {
-               $lock = dba::selectFirst('locks', ['locked'], ['`name` = ? AND `expires` >= ?', $key, DateTimeFormat::utcNow()]);
+               $lock = DBA::selectFirst('locks', ['locked'], ['`name` = ? AND `expires` >= ?', $key, DateTimeFormat::utcNow()]);
 
-               if (DBM::is_result($lock)) {
+               if (DBA::isResult($lock)) {
                        return $lock['locked'] !== false;
                } else {
                        return false;