diff options
| author | Mason Reed <mason@vector35.com> | 2025-04-14 17:17:42 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-04-14 20:45:14 -0400 |
| commit | 8c3bd6e14eafe4b1d0af509c7abc7e6bd9a97c15 (patch) | |
| tree | f977f4191e9ef94e02c809f52734940da32da247 /view/sharedcache/core/FileAccessorCache.cpp | |
| parent | 9b7b429106f16b5704cf27baf9f3d69ff4a0857a (diff) | |
[SharedCache] Evict file accessors from the global file accessor cache on file metadata destruction
Previously we would just let them continue to exist after view destruction, this is fine assuming we expect the user to be re-opening the same cache over and over, but
if a user wants to load a bunch of different caches they might want to evict the old file accessors so that COW pages are known to be evicted, along with other paged in memory.
Diffstat (limited to 'view/sharedcache/core/FileAccessorCache.cpp')
| -rw-r--r-- | view/sharedcache/core/FileAccessorCache.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/view/sharedcache/core/FileAccessorCache.cpp b/view/sharedcache/core/FileAccessorCache.cpp index 5fa965b3..28aab15d 100644 --- a/view/sharedcache/core/FileAccessorCache.cpp +++ b/view/sharedcache/core/FileAccessorCache.cpp @@ -68,6 +68,12 @@ WeakFileAccessor FileAccessorCache::Open(const std::string& filePath) return WeakFileAccessor(sharedAccessor, filePath); } +void FileAccessorCache::RemoveAccessor(const CacheAccessorID id) +{ + std::unique_lock lock(m_mutex); + m_accessors.erase(id); +} + std::shared_ptr<MappedFileAccessor> WeakFileAccessor::lock() { auto sharedPtr = m_weakPtr.lock(); @@ -86,4 +92,4 @@ std::shared_ptr<MappedFileAccessor> WeakFileAccessor::lock() } return sharedPtr; -}
\ No newline at end of file +} |
