From 430609181eba5c3c7254818615c8eb9b8ce6d8a0 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Fri, 18 Oct 2024 13:30:01 -0400 Subject: [PATCH] Tracker: Use queries to find transient queries to delete. Walking the entire filesystem is slow and wastes cache memory. Instead, just use a TQueryWalker to find and iterate over queries. --- src/kits/tracker/FindPanel.cpp | 10 +++------- src/kits/tracker/FindPanel.h | 7 ++++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/kits/tracker/FindPanel.cpp b/src/kits/tracker/FindPanel.cpp index f0bf4468cd..a55ead2134 100644 --- a/src/kits/tracker/FindPanel.cpp +++ b/src/kits/tracker/FindPanel.cpp @@ -3678,13 +3678,11 @@ DeleteTransientQueriesTask::Initialize() state = kError; return; } - fWalker = new BTrackerPrivate::TNodeWalker(path.Path()); + fWalker = new BTrackerPrivate::TQueryWalker(kAttrQueryLastChange " != 0"); state = kAllocatedWalker; } -const int32 kBatchCount = 100; - bool DeleteTransientQueriesTask::GetSome() { @@ -3707,10 +3705,8 @@ DeleteTransientQueriesTask::GetSome() } -const int32 kDaysToExpire = 7; - -static bool -QueryOldEnough(Model* model) +bool +DeleteTransientQueriesTask::QueryOldEnough(Model* model) { // check if it is old and ready to be deleted time_t now = time(0); diff --git a/src/kits/tracker/FindPanel.h b/src/kits/tracker/FindPanel.h index d7eeb366ea..cb88c6367d 100644 --- a/src/kits/tracker/FindPanel.h +++ b/src/kits/tracker/FindPanel.h @@ -370,11 +370,16 @@ protected: kError }; + static bool QueryOldEnough(Model* model); + protected: State state; private: - BTrackerPrivate::TNodeWalker* fWalker; + static const int32 kBatchCount = 100; + static const int32 kDaysToExpire = 7; + + BTrackerPrivate::TQueryWalker* fWalker; };