From 7486762aa08d67576f44a4c476b9db1dc52a5b09 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Sat, 9 Feb 2008 22:23:36 +0000 Subject: [PATCH] * Refactored some asset code and in the process uncovered a bug; now, I think first transfer of asset should start faster. --- .../Communications/Cache/AssetCache.cs | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 3e60cebf81..5bc388a730 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs @@ -81,6 +81,9 @@ namespace OpenSim.Framework.Communications.Cache long imageBytes = 0; long assetBytes = 0; + + + foreach (TextureImage texture in Textures.Values) { if (texture.Temporary) @@ -201,22 +204,23 @@ namespace OpenSim.Framework.Communications.Cache else { NewAssetRequest req = new NewAssetRequest(assetID, callback); - if (RequestLists.ContainsKey(assetID)) + + AssetRequestsList requestList; + + lock (RequestLists) { - lock (RequestLists) + if (RequestLists.TryGetValue(assetID, out requestList)) { - RequestLists[assetID].Requests.Add(req); - } - } - else - { - AssetRequestsList reqList = new AssetRequestsList(assetID); - reqList.Requests.Add(req); - lock (RequestLists) - { - RequestLists.Add(assetID, reqList); + } + else + { + requestList = new AssetRequestsList(assetID); + RequestLists.Add(assetID, requestList); } } + + requestList.Requests.Add(req); + m_assetServer.RequestAsset(assetID, false); } }