markAcquire($key); return true; } } return false; } /** * (@inheritdoc) */ public function releaseLock($key) { if (empty(self::$semaphore[$key])) { return false; } else { $success = @sem_release(self::$semaphore[$key]); unset(self::$semaphore[$key]); $this->markRelease($key); return $success; } } /** * (@inheritdoc) */ public function isLocked($key) { return isset(self::$semaphore[$key]); } }