acquiredLocks[$key] = sem_get(self::semaphoreKey($key)); if ($this->acquiredLocks[$key]) { return sem_acquire($this->acquiredLocks[$key], ($timeout == 0)); } } /** * @brief Removes a lock if it was set by us * * @param string $key Name of the lock * * @return mixed */ public function releaseLock(string $key) { if (empty($this->acquiredLocks[$key])) { return false; } else { $success = @sem_release($this->acquiredLocks[$key]); unset($this->acquiredLocks[$key]); return $success; } } }