summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2025-01-29 12:46:06 +0100
committerKlaus Aehlig <klaus.aehlig@huawei.com>2025-01-29 15:09:18 +0100
commit48c2382218a5af10177e68ba24091e77f1e045e6 (patch)
treedfb304b1e7d17ade7d27687198c0b50055aa6b38
parentda749a585ab920d10f6379ebc465221732d23610 (diff)
downloadjustbuild-48c2382218a5af10177e68ba24091e77f1e045e6.tar.gz
garbage collection: remove garbage recursively
When garbage collecting the oldest generation, we expect it to be a non-empty directory. Therefore, remove it recursively.
-rw-r--r--src/buildtool/storage/repository_garbage_collector.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/buildtool/storage/repository_garbage_collector.cpp b/src/buildtool/storage/repository_garbage_collector.cpp
index 6e4a2609..c5aa1f75 100644
--- a/src/buildtool/storage/repository_garbage_collector.cpp
+++ b/src/buildtool/storage/repository_garbage_collector.cpp
@@ -58,7 +58,8 @@ auto RepositoryGarbageCollector::TriggerGarbageCollection(
return false;
}
if (FileSystemManager::IsDirectory(remove_me)) {
- if (not FileSystemManager::RemoveDirectory(remove_me)) {
+ if (not FileSystemManager::RemoveDirectory(remove_me,
+ /*recursively=*/true)) {
Logger::Log(LogLevel::Error,
"Failed to remove directory {}",
remove_me.string());
@@ -110,7 +111,8 @@ auto RepositoryGarbageCollector::TriggerGarbageCollection(
return false;
}
if (FileSystemManager::IsDirectory(remove_me)) {
- if (not FileSystemManager::RemoveDirectory(remove_me)) {
+ if (not FileSystemManager::RemoveDirectory(remove_me,
+ /*recursively=*/true)) {
Logger::Log(LogLevel::Error,
"Failed to remove directory {}",
remove_me.string());