add locks in the scanner to prevent multiple scanners running on the same files
This commit is contained in:
parent
74de72e75e
commit
4ac16001e0
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue