From 7e2c0bbc566055d7d512db0c6b9709e389e1e38a Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Mon, 3 Nov 2025 18:49:56 +0100 Subject: fix clean directory and make them use effective threading where appropriate (#625) fix retry logic so it does not immediately sleep if file does not exist make sure we don't try to delete target folder files if we have already wiped it --- .../builds/buildstorageoperations.cpp | 23 ++++++---------------- 1 file changed, 6 insertions(+), 17 deletions(-) (limited to 'src/zenremotestore/builds/buildstorageoperations.cpp') diff --git a/src/zenremotestore/builds/buildstorageoperations.cpp b/src/zenremotestore/builds/buildstorageoperations.cpp index ecf5853b8..5c1b28695 100644 --- a/src/zenremotestore/builds/buildstorageoperations.cpp +++ b/src/zenremotestore/builds/buildstorageoperations.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -19,7 +20,6 @@ #include #include #include -#include "../filesystemutils.h" #include @@ -2124,7 +2124,7 @@ BuildsOperationUpdateFolder::Execute(FolderContent& OutLocalFolderState) DeleteCount++; } } - else + else if (!m_Options.WipeTargetFolder) { // Delete local file as we did not scavenge the folder RemoveLocalPathIndexes.push_back(LocalPathIndex); @@ -4650,15 +4650,9 @@ BuildsOperationUploadFolder::Execute() Stopwatch ProcessTimer; + CleanAndRemoveDirectory(m_IOWorkerPool, m_AbortFlag, m_PauseFlag, m_Options.TempDir); CreateDirectories(m_Options.TempDir); - CleanDirectory(m_Options.TempDir, {}); - auto _ = MakeGuard([&]() { - if (CleanDirectory(m_Options.TempDir, {})) - { - std::error_code DummyEc; - RemoveDir(m_Options.TempDir, DummyEc); - } - }); + auto _ = MakeGuard([&]() { CleanAndRemoveDirectory(m_IOWorkerPool, m_AbortFlag, m_PauseFlag, m_Options.TempDir); }); m_LogOutput.SetLogOperationProgress(TaskSteps::PrepareBuild, TaskSteps::StepCount); @@ -6915,14 +6909,9 @@ BuildsOperationValidateBuildPart::Execute() const std::filesystem::path TempFolder = ".zen-tmp"; + CleanAndRemoveDirectory(m_IOWorkerPool, m_AbortFlag, m_PauseFlag, TempFolder); CreateDirectories(TempFolder); - auto __ = MakeGuard([&TempFolder]() { - if (CleanDirectory(TempFolder, {})) - { - std::error_code DummyEc; - RemoveDir(TempFolder, DummyEc); - } - }); + auto __ = MakeGuard([this, TempFolder]() { CleanAndRemoveDirectory(m_IOWorkerPool, m_AbortFlag, m_PauseFlag, TempFolder); }); m_LogOutput.SetLogOperationProgress(TaskSteps::ValidateBlobs, TaskSteps::StepCount); -- cgit v1.2.3