summaryrefslogtreecommitdiff
path: root/indra/llfilesystem
diff options
context:
space:
mode:
authorAnsariel <ansariel.hiller@phoenixviewer.com>2021-05-12 10:45:23 +0200
committerAnsariel <ansariel.hiller@phoenixviewer.com>2021-05-12 10:45:23 +0200
commit0e253cb9098cb58b2f3528860a5fd9f00ec5af96 (patch)
treee74f2c0b553478c5304789a86147176db271f4e6 /indra/llfilesystem
parentc241c5d4b8007793cb4b5f5e54fa3883aad3dad5 (diff)
BUG-230673: Trim asset disk cache regularly
Diffstat (limited to 'indra/llfilesystem')
-rw-r--r--indra/llfilesystem/lldiskcache.cpp22
-rw-r--r--indra/llfilesystem/lldiskcache.h11
2 files changed, 33 insertions, 0 deletions
diff --git a/indra/llfilesystem/lldiskcache.cpp b/indra/llfilesystem/lldiskcache.cpp
index 02678864b9..68423cc4f8 100644
--- a/indra/llfilesystem/lldiskcache.cpp
+++ b/indra/llfilesystem/lldiskcache.cpp
@@ -335,3 +335,25 @@ uintmax_t LLDiskCache::dirFileSize(const std::string dir)
return total_file_size;
}
+
+LLPurgeDiskCacheThread::LLPurgeDiskCacheThread() :
+ LLThread("PurgeDiskCacheThread", nullptr)
+{
+}
+
+void LLPurgeDiskCacheThread::run()
+{
+ constexpr F64 CHECK_INTERVAL = 60;
+ mTimer.setTimerExpirySec(CHECK_INTERVAL);
+ mTimer.start();
+
+ do
+ {
+ if (mTimer.checkExpirationAndReset(CHECK_INTERVAL))
+ {
+ LLDiskCache::instance().purge();
+ }
+
+ ms_sleep(100);
+ } while (!isQuitting());
+} \ No newline at end of file
diff --git a/indra/llfilesystem/lldiskcache.h b/indra/llfilesystem/lldiskcache.h
index c19714434a..867a80f332 100644
--- a/indra/llfilesystem/lldiskcache.h
+++ b/indra/llfilesystem/lldiskcache.h
@@ -180,4 +180,15 @@ class LLDiskCache :
bool mEnableCacheDebugInfo;
};
+class LLPurgeDiskCacheThread : public LLThread
+{
+public:
+ LLPurgeDiskCacheThread();
+
+protected:
+ void run() override;
+
+private:
+ LLTimer mTimer;
+};
#endif // _LLDISKCACHE