Merge pull request #24205 from owncloud/scanner-locking

add locks in the scanner to prevent multiple scanners running on the …
This commit is contained in:
Thomas Müller 2016-04-25 14:48:20 +02:00
commit 5348424417
1 changed files with 2 additions and 0 deletions

View File

@ -296,6 +296,7 @@ class Scanner extends BasicEmitter implements IScanner {
}
if ($lock) {
if ($this->storage->instanceOfStorage('\OCP\Files\Storage\ILockingStorage')) {
$this->storage->acquireLock('scanner::' . $path, ILockingProvider::LOCK_EXCLUSIVE, $this->lockingProvider);
$this->storage->acquireLock($path, ILockingProvider::LOCK_SHARED, $this->lockingProvider);
}
}
@ -307,6 +308,7 @@ class Scanner extends BasicEmitter implements IScanner {
if ($lock) {
if ($this->storage->instanceOfStorage('\OCP\Files\Storage\ILockingStorage')) {
$this->storage->releaseLock($path, ILockingProvider::LOCK_SHARED, $this->lockingProvider);
$this->storage->releaseLock('scanner::' . $path, ILockingProvider::LOCK_EXCLUSIVE, $this->lockingProvider);
}
}
return $data;