aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs
diff options
context:
space:
mode:
authorMelanie2012-10-07 03:12:21 +0100
committerMelanie2012-10-07 03:12:21 +0100
commit0c5b36a4f700e6944f743b33e8b8d2d5fe565f93 (patch)
tree9fdc65657124754d43cfa749f7b5f6bae9ad4d2c /OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs
parentFix merge issues (diff)
parentFix threading in remote asset connector (diff)
downloadopensim-SC-0c5b36a4f700e6944f743b33e8b8d2d5fe565f93.zip
opensim-SC-0c5b36a4f700e6944f743b33e8b8d2d5fe565f93.tar.gz
opensim-SC-0c5b36a4f700e6944f743b33e8b8d2d5fe565f93.tar.bz2
opensim-SC-0c5b36a4f700e6944f743b33e8b8d2d5fe565f93.tar.xz
Merge branch 'avination' into careminster
Conflicts: OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs
Diffstat (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs')
-rw-r--r--OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs37
1 files changed, 21 insertions, 16 deletions
diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs
index 88a3026..4b502b7 100644
--- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs
+++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs
@@ -301,25 +301,30 @@ namespace OpenSim.Services.Connectors
301 bool success = false; 301 bool success = false;
302 try 302 try
303 { 303 {
304 AsynchronousRestObjectRequester.MakeRequest<int, AssetBase>("GET", uri, 0, 304 AssetBase a = SynchronousRestObjectRequester.MakeRequest<int, AssetBase>("GET", uri, 0, 30);
305 delegate(AssetBase a) 305 if (a != null)
306 { 306 {
307 if (m_Cache != null) 307 if (m_Cache != null)
308 m_Cache.Cache(a); 308 m_Cache.Cache(a);
309 309
310 List<AssetRetrievedEx> handlers; 310 List<AssetRetrievedEx> handlers;
311 lock (m_AssetHandlers) 311 lock (m_AssetHandlers)
312 {
313 handlers = m_AssetHandlers[id];
314 m_AssetHandlers.Remove(id);
315 }
316 foreach (AssetRetrievedEx h in handlers)
317 {
318 Util.FireAndForget(x =>
312 { 319 {
313 handlers = m_AssetHandlers[id];
314 m_AssetHandlers.Remove(id);
315 }
316 foreach (AssetRetrievedEx h in handlers)
317 h.Invoke(a); 320 h.Invoke(a);
318 if (handlers != null) 321 });
319 handlers.Clear(); 322 }
320 }, m_maxAssetRequestConcurrency); 323 if (handlers != null)
324 handlers.Clear();
321 325
322 success = true; 326 success = true;
327 }
323 } 328 }
324 finally 329 finally
325 { 330 {
@@ -332,7 +337,7 @@ namespace OpenSim.Services.Connectors
332 m_AssetHandlers.Remove(id); 337 m_AssetHandlers.Remove(id);
333 } 338 }
334 if (handlers != null) 339 if (handlers != null)
335 handlers.Clear(); 340 handlers.Clear();
336 } 341 }
337 } 342 }
338 } 343 }