Browse Source

Remove all locks after ttl from the db

tags/v9.0beta1
Robin Appelman 8 years ago
parent
commit
e191953942
2 changed files with 4 additions and 10 deletions
  1. 3
    3
      lib/private/lock/dblockingprovider.php
  2. 1
    7
      tests/lib/lock/dblockingprovider.php

+ 3
- 3
lib/private/lock/dblockingprovider.php View File

@@ -235,10 +235,10 @@ class DBLockingProvider extends AbstractLockingProvider {
/**
* cleanup empty locks
*/
public function cleanEmptyLocks() {
public function cleanExpiredLocks() {
$expire = $this->timeFactory->getTime();
$this->connection->executeUpdate(
'DELETE FROM `*PREFIX*file_locks` WHERE `lock` = 0 AND `ttl` < ?',
'DELETE FROM `*PREFIX*file_locks` WHERE `ttl` < ?',
[$expire]
);
}
@@ -262,7 +262,7 @@ class DBLockingProvider extends AbstractLockingProvider {

public function __destruct() {
try {
$this->cleanEmptyLocks();
$this->cleanExpiredLocks();
} catch (\Exception $e) {
// If the table is missing, the clean up was successful
if ($this->connection->tableExists('file_locks')) {

+ 1
- 7
tests/lib/lock/dblockingprovider.php View File

@@ -85,13 +85,7 @@ class DBLockingProvider extends LockingProvider {

$this->assertEquals(3, $this->getLockEntryCount());

$this->instance->cleanEmptyLocks();

$this->assertEquals(3, $this->getLockEntryCount());

$this->instance->releaseAll();

$this->instance->cleanEmptyLocks();
$this->instance->cleanExpiredLocks();

$this->assertEquals(2, $this->getLockEntryCount());
}

Loading…
Cancel
Save