diff options
Diffstat (limited to 'src/zenstore/compactcas.cpp')
| -rw-r--r-- | src/zenstore/compactcas.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/zenstore/compactcas.cpp b/src/zenstore/compactcas.cpp index 02db5f848..f28601771 100644 --- a/src/zenstore/compactcas.cpp +++ b/src/zenstore/compactcas.cpp @@ -577,6 +577,11 @@ public: std::unordered_map<uint32_t, uint64_t> BlockUsage; { RwLock::SharedLockScope __(m_CasContainerStrategy.m_LocationMapLock); + if (Ctx.IsCancelledFlag.load()) + { + return; + } + for (const auto& Entry : m_CasContainerStrategy.m_LocationMap) { size_t Index = Entry.second; @@ -660,6 +665,11 @@ public: } m_CasContainerStrategy.m_CasLog.Append(MovedEntries); Stats.RemovedDisk += FreedDiskSpace; + if (Ctx.IsCancelledFlag.load()) + { + return false; + } + return true; }, ClaimDiskReserveCallback); } @@ -720,6 +730,10 @@ public: { RwLock::ExclusiveLockScope __(m_CasContainerStrategy.m_LocationMapLock); + if (Ctx.IsCancelledFlag.load()) + { + return nullptr; + } for (const IoHash& Cid : UnusedCids) { @@ -784,6 +798,11 @@ CasContainerStrategy::CreateReferencePruner(GcCtx& Ctx, GcReferenceStoreStats&) { return {}; } + if (Ctx.IsCancelledFlag.load()) + { + return nullptr; + } + CidsToCheck.reserve(m_LocationMap.size()); for (const auto& It : m_LocationMap) { |