diff options
Diffstat (limited to 'src/zenstore/gc.cpp')
| -rw-r--r-- | src/zenstore/gc.cpp | 17 |
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() { |