db = $connection; } #[Override] public function releaseLock(string $path, int $type): void { // we DON'T keep shared locks till the end of the request if ($type === self::LOCK_SHARED) { $qb = $this->db->getQueryBuilder(); $qb->update('file_locks') ->set('lock', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)) ->where($qb->expr()->eq('key', $qb->createNamedParameter($path, IQueryBuilder::PARAM_STR))) ->andWhere($qb->expr()->eq('lock', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT))) ->executeStatement(); } parent::releaseLock($path, $type); } public function __destruct() { // Prevent cleaning up at the end of the live time. // parent::__destruct(); } }