From 5a6bc26600c80d8e838bafdde4df970841c6c285 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 9 Mar 2009 17:55:08 +0000 Subject: * Address http://opensimulator.org/mantis/view.php?id=3207 * A saved archive now immediately expires the data in the asset cache that it used, rather than retaining all the assets (esp textures) in the cache. * This is an imperfect solution. Ideally we would only expire the assets newly requested for the archive (not existing ones). But doing that would require a lot more restructuring. * I don't believe there are any locking issues due to the locking performed by the underlying memory cache, but please report any issues. --- OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/CoreModules/World') diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs index 99ec9b4..076fbce 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs @@ -72,7 +72,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver /// protected IAssetCache m_assetCache; - protected internal AssetsRequest(ICollection uuids, IAssetCache assetCache, AssetsRequestCallback assetsRequestCallback) + protected internal AssetsRequest( + ICollection uuids, IAssetCache assetCache, AssetsRequestCallback assetsRequestCallback) { m_uuids = uuids; m_assetsRequestCallback = assetsRequestCallback; @@ -100,9 +101,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver public void AssetRequestCallback(UUID assetID, AssetBase asset) { if (asset != null) - m_assets[assetID] = asset; + { + m_assetCache.ExpireAsset(assetID); + m_assets[assetID] = asset; + } else + { m_notFoundAssetUuids.Add(assetID); + } //m_log.DebugFormat( // "[ARCHIVER]: Received {0} assets and notification of {1} missing assets", m_assets.Count, m_notFoundAssetUuids.Count); -- cgit v1.1