X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FLock.php;h=9c449844597c56620bb90106ce67bd19fe4772c8;hb=6e5471def3477e84473bc237e10c7c75c9e6e853;hp=754a45ed9ea02dc0935fbb8031a7035fb2e8afc0;hpb=6b1b02472ad2fec204d2e8c5a0bdbc1b0728377c;p=friendica.git diff --git a/src/Util/Lock.php b/src/Util/Lock.php index 754a45ed9e..9c44984459 100644 --- a/src/Util/Lock.php +++ b/src/Util/Lock.php @@ -1,30 +1,33 @@ =')) { + self::$semaphore[$fn_name] = sem_get(self::semaphoreKey($fn_name)); if (self::$semaphore[$fn_name]) { return sem_acquire(self::$semaphore[$fn_name], ($timeout == 0)); } @@ -120,7 +126,7 @@ class Lock { dba::lock('locks'); $lock = dba::select('locks', array('locked', 'pid'), array('name' => $fn_name), array('limit' => 1)); - if (dbm::is_result($lock)) { + if (DBM::is_result($lock)) { if ($lock['locked']) { // When the process id isn't used anymore, we can safely claim the lock for us. if (!posix_kill($lock['pid'], 0)) { @@ -135,7 +141,7 @@ class Lock { dba::update('locks', array('locked' => true, 'pid' => getmypid()), array('name' => $fn_name)); $got_lock = true; } - } elseif (!dbm::is_result($lock)) { + } elseif (!DBM::is_result($lock)) { dba::insert('locks', array('name' => $fn_name, 'locked' => true, 'pid' => getmypid())); $got_lock = true; } @@ -154,9 +160,11 @@ class Lock { * @brief Removes a lock if it was set by us * * @param string $fn_name Name of the lock + * @return mixed */ - public static function remove($fn_name) { - if (function_exists('sem_get')) { + public static function remove($fn_name) + { + if (function_exists('sem_get') && version_compare(PHP_VERSION, '5.6.1', '>=')) { if (empty(self::$semaphore[$fn_name])) { return false; } else { @@ -185,8 +193,10 @@ class Lock { /** * @brief Removes all lock that were set by us + * @return void */ - public static function removeAll() { + public static function removeAll() + { $memcache = self::connectMemcache(); if (is_object($memcache)) { // We cannot delete all cache entries, but this doesn't matter with memcache