From bd3b270b57eafc626ca42efea3be8c460761c6ca Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Wed, 28 Feb 2024 11:10:34 +0100 Subject: Make sure we wait for all scheduled tasks to complete before throwing exceptions further (#662) Bugfix: We must not throw exceptions to calling function until all async work we spawned has returned --- src/zenstore/compactcas.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/zenstore/compactcas.cpp') diff --git a/src/zenstore/compactcas.cpp b/src/zenstore/compactcas.cpp index b308ddd4f..c8fb41ffc 100644 --- a/src/zenstore/compactcas.cpp +++ b/src/zenstore/compactcas.cpp @@ -699,7 +699,11 @@ public: { } - virtual GcStoreCompactor* RemoveUnreferencedData(GcCtx& Ctx, GcStats& Stats, const GetUnusedReferencesFunc& GetUnusedReferences) + virtual std::string GetGcName(GcCtx& Ctx) override { return m_CasContainerStrategy.GetGcName(Ctx); } + + virtual GcStoreCompactor* RemoveUnreferencedData(GcCtx& Ctx, + GcStats& Stats, + const GetUnusedReferencesFunc& GetUnusedReferences) override { ZEN_TRACE_CPU("CasContainer::RemoveUnreferencedData"); @@ -778,7 +782,7 @@ private: std::string CasContainerStrategy::GetGcName(GcCtx&) { - return fmt::format("compactcas:'{}'", (m_RootDirectory / m_ContainerBaseName).string()); + return fmt::format("compactcas: '{}'", (m_RootDirectory / m_ContainerBaseName).string()); } GcReferencePruner* -- cgit v1.2.3