Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/maps.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib/Hooks
diff options
context:
space:
mode:
authorJulien Veyssier <eneiluj@posteo.net>2019-09-15 14:12:27 +0300
committerJulien Veyssier <eneiluj@posteo.net>2019-09-15 14:12:27 +0300
commit450cf03d43a8be7da48d0589749a9b35e592e2b8 (patch)
treec17df34e1e01857713d49a59a656f6b16d0c8cde /lib/Hooks
parent671421f4e4451ef48689cf112d47943e7b21f7f4 (diff)
refs #138 acquire/release lock in file write hook
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Diffstat (limited to 'lib/Hooks')
-rw-r--r--lib/Hooks/FileHooks.php3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Hooks/FileHooks.php b/lib/Hooks/FileHooks.php
index f4f4503b..e51f34ee 100644
--- a/lib/Hooks/FileHooks.php
+++ b/lib/Hooks/FileHooks.php
@@ -18,6 +18,7 @@ use OCP\Files\FileInfo;
use OCP\ILogger;
use OCP\Files\Node;
use OCP\Files\IRootFolder;
+use OCP\Lock\ILockingProvider;
use OCP\Util;
use OCP\Share;
@@ -46,10 +47,12 @@ class FileHooks {
public function register() {
$fileWriteCallback = function(\OCP\Files\Node $node) {
if ($this->isUserNode($node) && $node->getSize() > 0) {
+ $node->lock(ILockingProvider::LOCK_SHARED);
$isPhoto = $this->photofilesService->safeAddByFile($node);
if (!$isPhoto) {
$this->tracksService->safeAddByFile($node);
}
+ $node->unlock(ILockingProvider::LOCK_SHARED);
}
};
$this->root->listen('\OC\Files', 'postWrite', $fileWriteCallback);