diff options
| author | Rye <rye@alchemyviewer.org> | 2025-10-28 09:12:09 -0400 |
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2026-01-21 22:07:08 +0200 |
| commit | d527adf68c9d7cac5330faab53876f4d3efa06e8 (patch) | |
| tree | 3fc8701a6c09adbf4a4f1bdbfb02e86ab6ce4cd3 /indra | |
| parent | 4dcd070ef310cec9c027fd29cc7c486674cc98c8 (diff) | |
Add early out for disk cache when app is shutting down to reduce shutdown time
Signed-off-by: Rye <rye@alchemyviewer.org>
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llfilesystem/lldiskcache.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/indra/llfilesystem/lldiskcache.cpp b/indra/llfilesystem/lldiskcache.cpp index a19d263174..dd7d1a043f 100644 --- a/indra/llfilesystem/lldiskcache.cpp +++ b/indra/llfilesystem/lldiskcache.cpp @@ -114,6 +114,10 @@ void LLDiskCache::purge() boost::filesystem::directory_iterator iter(cache_path, ec); while (iter != boost::filesystem::directory_iterator() && !ec.failed()) { + if(!LLApp::isRunning()) + { + return; + } if (boost::filesystem::is_regular_file(*iter, ec) && !ec.failed()) { if ((*iter).path().string().find(CACHE_FILENAME_PREFIX) != std::string::npos) @@ -152,6 +156,10 @@ void LLDiskCache::purge() uintmax_t file_size_total = 0; for (file_info_t& entry : file_info) { + if (!LLApp::isRunning()) + { + return; + } file_size_total += entry.second.first; bool should_remove = file_size_total > mMaxSizeBytes; @@ -178,6 +186,10 @@ void LLDiskCache::purge() // Logging thousands of file results can take hundreds of milliseconds for (size_t i = 0; i < file_info.size(); ++i) { + if (!LLApp::isRunning()) + { + return; + } const file_info_t& entry = file_info[i]; const bool removed = file_removed[i]; const std::string action = removed ? "DELETE:" : "KEEP:"; |
