aboutsummaryrefslogtreecommitdiff
path: root/src/zenstore/gc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenstore/gc.cpp')
-rw-r--r--src/zenstore/gc.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/zenstore/gc.cpp b/src/zenstore/gc.cpp
index 2cd1f6aeb..262c94feb 100644
--- a/src/zenstore/gc.cpp
+++ b/src/zenstore/gc.cpp
@@ -1295,8 +1295,9 @@ GcScheduler::Shutdown()
bool GcIsRunning = m_Status == static_cast<uint32_t>(GcSchedulerStatus::kRunning);
if (GcIsRunning)
{
- m_GcManager.SetCancelGC(true);
+ ZEN_INFO("Requesting cancel running garbage collection");
}
+ m_GcManager.SetCancelGC(true);
m_Status = static_cast<uint32_t>(GcSchedulerStatus::kStopped);
m_GcSignal.notify_one();
@@ -1353,6 +1354,20 @@ GcScheduler::TriggerScrub(const TriggerScrubParams& Params)
return false;
}
+bool
+GcScheduler::CancelGC()
+{
+ std::unique_lock Lock(m_GcMutex);
+
+ if (static_cast<uint32_t>(GcSchedulerStatus::kRunning) == m_Status)
+ {
+ ZEN_INFO("Cancel requested for running garbage collection");
+ m_GcManager.SetCancelGC(true);
+ return true;
+ }
+ return false;
+}
+
DiskSpace
GcScheduler::CheckDiskSpace()
{