From 041fcd6a72e1822656d58f87a398e3a0f065a486 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 6 Sep 2012 17:18:34 +0100 Subject: remove extra '/' in assets url --- .../Connectors/Asset/AssetServicesConnector.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 45ebf3a..7ad6f0b 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -181,7 +181,8 @@ namespace OpenSim.Services.Connectors public AssetBase Get(string id) { - string uri = MapServer(id) + "/assets/" + id; +// string uri = MapServer(id) + "/assets/" + id; + string uri = MapServer(id) + "assets/" + id; AssetBase asset = null; if (m_Cache != null) @@ -218,7 +219,8 @@ namespace OpenSim.Services.Connectors return fullAsset.Metadata; } - string uri = MapServer(id) + "/assets/" + id + "/metadata"; +// string uri = MapServer(id) + "/assets/" + id + "/metadata"; + string uri = MapServer(id) + "assets/" + id + "/metadata"; AssetMetadata asset = SynchronousRestObjectRequester. MakeRequest("GET", uri, 0); @@ -260,7 +262,8 @@ namespace OpenSim.Services.Connectors public bool Get(string id, Object sender, AssetRetrieved handler) { - string uri = MapServer(id) + "/assets/" + id; +// string uri = MapServer(id) + "/assets/" + id; + string uri = MapServer(id) + "assets/" + id; AssetBase asset = null; if (m_Cache != null) @@ -379,7 +382,9 @@ namespace OpenSim.Services.Connectors return asset.ID; } - string uri = MapServer(asset.FullID.ToString()) + "/assets/"; +// string uri = MapServer(asset.FullID.ToString()) + "/assets/"; + + string uri = MapServer(asset.FullID.ToString()) + "assets/"; string newID = string.Empty; try @@ -456,7 +461,8 @@ namespace OpenSim.Services.Connectors } asset.Data = data; - string uri = MapServer(id) + "/assets/" + id; +// string uri = MapServer(id) + "/assets/" + id; + string uri = MapServer(id) + "assets/" + id; if (SynchronousRestObjectRequester. MakeRequest("POST", uri, asset)) @@ -471,7 +477,8 @@ namespace OpenSim.Services.Connectors public bool Delete(string id) { - string uri = MapServer(id) + "/assets/" + id; +// string uri = MapServer(id) + "/assets/" + id; + string uri = MapServer(id) + "assets/" + id; if (SynchronousRestObjectRequester. MakeRequest("DELETE", uri, 0)) -- cgit v1.1 From 27d345c9a0047af44296184557aed25719b2759e Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 6 Sep 2012 17:02:55 +0200 Subject: Revert " remove extra '/' in assets url" This reverts commit 041fcd6a72e1822656d58f87a398e3a0f065a486. --- .../Connectors/Asset/AssetServicesConnector.cs | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 7ad6f0b..45ebf3a 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -181,8 +181,7 @@ namespace OpenSim.Services.Connectors public AssetBase Get(string id) { -// string uri = MapServer(id) + "/assets/" + id; - string uri = MapServer(id) + "assets/" + id; + string uri = MapServer(id) + "/assets/" + id; AssetBase asset = null; if (m_Cache != null) @@ -219,8 +218,7 @@ namespace OpenSim.Services.Connectors return fullAsset.Metadata; } -// string uri = MapServer(id) + "/assets/" + id + "/metadata"; - string uri = MapServer(id) + "assets/" + id + "/metadata"; + string uri = MapServer(id) + "/assets/" + id + "/metadata"; AssetMetadata asset = SynchronousRestObjectRequester. MakeRequest("GET", uri, 0); @@ -262,8 +260,7 @@ namespace OpenSim.Services.Connectors public bool Get(string id, Object sender, AssetRetrieved handler) { -// string uri = MapServer(id) + "/assets/" + id; - string uri = MapServer(id) + "assets/" + id; + string uri = MapServer(id) + "/assets/" + id; AssetBase asset = null; if (m_Cache != null) @@ -382,9 +379,7 @@ namespace OpenSim.Services.Connectors return asset.ID; } -// string uri = MapServer(asset.FullID.ToString()) + "/assets/"; - - string uri = MapServer(asset.FullID.ToString()) + "assets/"; + string uri = MapServer(asset.FullID.ToString()) + "/assets/"; string newID = string.Empty; try @@ -461,8 +456,7 @@ namespace OpenSim.Services.Connectors } asset.Data = data; -// string uri = MapServer(id) + "/assets/" + id; - string uri = MapServer(id) + "assets/" + id; + string uri = MapServer(id) + "/assets/" + id; if (SynchronousRestObjectRequester. MakeRequest("POST", uri, asset)) @@ -477,8 +471,7 @@ namespace OpenSim.Services.Connectors public bool Delete(string id) { -// string uri = MapServer(id) + "/assets/" + id; - string uri = MapServer(id) + "assets/" + id; + string uri = MapServer(id) + "/assets/" + id; if (SynchronousRestObjectRequester. MakeRequest("DELETE", uri, 0)) -- cgit v1.1 From b9d026666dbabb210cc013d29eb79fe214594dd9 Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 6 Sep 2012 17:11:44 +0200 Subject: Change string concatenation to Path.Combine to eliminate extra slashes. Windoze barfs on them. --- .../Services/Connectors/Asset/AssetServicesConnector.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 45ebf3a..2a3dacc 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -181,7 +181,7 @@ namespace OpenSim.Services.Connectors public AssetBase Get(string id) { - string uri = MapServer(id) + "/assets/" + id; + string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); AssetBase asset = null; if (m_Cache != null) @@ -218,7 +218,7 @@ namespace OpenSim.Services.Connectors return fullAsset.Metadata; } - string uri = MapServer(id) + "/assets/" + id + "/metadata"; + string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); AssetMetadata asset = SynchronousRestObjectRequester. MakeRequest("GET", uri, 0); @@ -260,7 +260,7 @@ namespace OpenSim.Services.Connectors public bool Get(string id, Object sender, AssetRetrieved handler) { - string uri = MapServer(id) + "/assets/" + id; + string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); AssetBase asset = null; if (m_Cache != null) @@ -379,7 +379,9 @@ namespace OpenSim.Services.Connectors return asset.ID; } - string uri = MapServer(asset.FullID.ToString()) + "/assets/"; + string uri = Path.Combine(MapServer(asset.FullID.ToString()), "/assets/"); + if (!uri.EndsWith("/")) + uri += "/"; string newID = string.Empty; try @@ -456,7 +458,7 @@ namespace OpenSim.Services.Connectors } asset.Data = data; - string uri = MapServer(id) + "/assets/" + id; + string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); if (SynchronousRestObjectRequester. MakeRequest("POST", uri, asset)) @@ -471,7 +473,7 @@ namespace OpenSim.Services.Connectors public bool Delete(string id) { - string uri = MapServer(id) + "/assets/" + id; + string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); if (SynchronousRestObjectRequester. MakeRequest("DELETE", uri, 0)) -- cgit v1.1 From 3257f4d5d21116e9fb8e08f3277b3521d38bc11c Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 6 Sep 2012 17:31:41 +0200 Subject: Revert "Change string concatenation to Path.Combine to eliminate extra slashes." This reverts commit b9d026666dbabb210cc013d29eb79fe214594dd9. --- .../Services/Connectors/Asset/AssetServicesConnector.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 2a3dacc..45ebf3a 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -181,7 +181,7 @@ namespace OpenSim.Services.Connectors public AssetBase Get(string id) { - string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); + string uri = MapServer(id) + "/assets/" + id; AssetBase asset = null; if (m_Cache != null) @@ -218,7 +218,7 @@ namespace OpenSim.Services.Connectors return fullAsset.Metadata; } - string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); + string uri = MapServer(id) + "/assets/" + id + "/metadata"; AssetMetadata asset = SynchronousRestObjectRequester. MakeRequest("GET", uri, 0); @@ -260,7 +260,7 @@ namespace OpenSim.Services.Connectors public bool Get(string id, Object sender, AssetRetrieved handler) { - string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); + string uri = MapServer(id) + "/assets/" + id; AssetBase asset = null; if (m_Cache != null) @@ -379,9 +379,7 @@ namespace OpenSim.Services.Connectors return asset.ID; } - string uri = Path.Combine(MapServer(asset.FullID.ToString()), "/assets/"); - if (!uri.EndsWith("/")) - uri += "/"; + string uri = MapServer(asset.FullID.ToString()) + "/assets/"; string newID = string.Empty; try @@ -458,7 +456,7 @@ namespace OpenSim.Services.Connectors } asset.Data = data; - string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); + string uri = MapServer(id) + "/assets/" + id; if (SynchronousRestObjectRequester. MakeRequest("POST", uri, asset)) @@ -473,7 +471,7 @@ namespace OpenSim.Services.Connectors public bool Delete(string id) { - string uri = Path.Combine(MapServer(id), Path.Combine("assets", id)); + string uri = MapServer(id) + "/assets/" + id; if (SynchronousRestObjectRequester. MakeRequest("DELETE", uri, 0)) -- cgit v1.1 From ac6448810e999c4c0c0035fff43b45db9a094094 Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 6 Sep 2012 17:39:30 +0200 Subject: Prevent double slashes, try #3 --- OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 45ebf3a..091e41a 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -126,6 +126,9 @@ namespace OpenSim.Services.Connectors // m_log.DebugFormat("[ASSET]: Using {0} for host name for prefix {1}", host, prefix); + string ret = serverUri.Uri.AbsoluteUri; + if (ret.EndsWith("/")) + ret = ret.Substring(0, ret.Length - 1); return serverUri.Uri.AbsoluteUri; } -- cgit v1.1 From f53ca6285bc21155a2fdad953b9063a4f8cd5d21 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 6 Sep 2012 18:41:21 +0100 Subject: Prevent double slashes, try #4 --- OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 091e41a..9e04601 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -129,7 +129,7 @@ namespace OpenSim.Services.Connectors string ret = serverUri.Uri.AbsoluteUri; if (ret.EndsWith("/")) ret = ret.Substring(0, ret.Length - 1); - return serverUri.Uri.AbsoluteUri; + return ret; } protected void retryCheck(object source, ElapsedEventArgs e) -- cgit v1.1 From 52d74cf274fbf002e7ec6ad82fe1a38dc2c02d59 Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 14 Sep 2012 00:11:23 +0200 Subject: Allow setting max connections for an endpoint --- OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 9e04601..daf38bc 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -193,7 +193,7 @@ namespace OpenSim.Services.Connectors if (asset == null || asset.Data == null || asset.Data.Length == 0) { asset = SynchronousRestObjectRequester. - MakeRequest("GET", uri, 0); + MakeRequest("GET", uri, 0, 30); if (m_Cache != null) m_Cache.Cache(asset); @@ -321,7 +321,7 @@ namespace OpenSim.Services.Connectors h.Invoke(a); if (handlers != null) handlers.Clear(); - }); + }, 30); success = true; } -- cgit v1.1 From 2aa7a22129e2b5c226d3937c31bdcbdbc65a20f8 Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 14 Sep 2012 23:09:07 +0200 Subject: Sequence/throttle asset retrievals. --- .../Connectors/Asset/AssetServicesConnector.cs | 104 +++++++++++++-------- 1 file changed, 67 insertions(+), 37 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index daf38bc..9d6d9ad 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -27,6 +27,7 @@ using log4net; using System; +using System.Threading; using System.Collections.Generic; using System.IO; using System.Reflection; @@ -50,7 +51,7 @@ namespace OpenSim.Services.Connectors private IImprovedAssetCache m_Cache = null; private int m_retryCounter; private Dictionary> m_retryQueue = new Dictionary>(); - private Timer m_retryTimer; + private System.Timers.Timer m_retryTimer; private delegate void AssetRetrievedEx(AssetBase asset); // Keeps track of concurrent requests for the same asset, so that it's only loaded once. @@ -61,6 +62,8 @@ namespace OpenSim.Services.Connectors private Dictionary m_UriMap = new Dictionary(); + private Thread[] m_fetchThreads; + public AssetServicesConnector() { } @@ -96,7 +99,7 @@ namespace OpenSim.Services.Connectors } - m_retryTimer = new Timer(); + m_retryTimer = new System.Timers.Timer(); m_retryTimer.Elapsed += new ElapsedEventHandler(retryCheck); m_retryTimer.Interval = 60000; @@ -112,6 +115,14 @@ namespace OpenSim.Services.Connectors m_UriMap[prefix] = groupHost; //m_log.DebugFormat("[ASSET]: Using {0} for prefix {1}", groupHost, prefix); } + + m_fetchThreads = new Thread[2]; + + for (int i = 0 ; i < 2 ; i++) + { + m_fetchThreads[i] = new Thread(AssetRequestProcessor); + m_fetchThreads[i].Start(); + } } private string MapServer(string id) @@ -261,37 +272,25 @@ namespace OpenSim.Services.Connectors return null; } - public bool Get(string id, Object sender, AssetRetrieved handler) + private class QueuedAssetRequest { - string uri = MapServer(id) + "/assets/" + id; - - AssetBase asset = null; - if (m_Cache != null) - asset = m_Cache.Get(id); + public string uri; + public string id; + } - if (asset == null || asset.Data == null || asset.Data.Length == 0) - { - lock (m_AssetHandlers) - { - AssetRetrievedEx handlerEx = new AssetRetrievedEx(delegate(AssetBase _asset) { handler(id, sender, _asset); }); + private OpenMetaverse.BlockingQueue m_requestQueue = + new OpenMetaverse.BlockingQueue(); -// AssetRetrievedEx handlers; - List handlers; - if (m_AssetHandlers.TryGetValue(id, out handlers)) - { - // Someone else is already loading this asset. It will notify our handler when done. -// handlers += handlerEx; - handlers.Add(handlerEx); - return true; - } + private void AssetRequestProcessor() + { + QueuedAssetRequest r; - // Load the asset ourselves -// handlers += handlerEx; - handlers = new List(); - handlers.Add(handlerEx); + while (true) + { + r = m_requestQueue.Dequeue(); - m_AssetHandlers.Add(id, handlers); - } + string uri = r.uri; + string id = r.id; bool success = false; try @@ -301,16 +300,7 @@ namespace OpenSim.Services.Connectors { if (m_Cache != null) m_Cache.Cache(a); -/* - AssetRetrievedEx handlers; - lock (m_AssetHandlers) - { - handlers = m_AssetHandlers[id]; - m_AssetHandlers.Remove(id); - } - handlers.Invoke(a); -*/ List handlers; lock (m_AssetHandlers) { @@ -340,6 +330,46 @@ namespace OpenSim.Services.Connectors } } } + } + + public bool Get(string id, Object sender, AssetRetrieved handler) + { + string uri = MapServer(id) + "/assets/" + id; + + AssetBase asset = null; + if (m_Cache != null) + asset = m_Cache.Get(id); + + if (asset == null || asset.Data == null || asset.Data.Length == 0) + { + lock (m_AssetHandlers) + { + AssetRetrievedEx handlerEx = new AssetRetrievedEx(delegate(AssetBase _asset) { handler(id, sender, _asset); }); + +// AssetRetrievedEx handlers; + List handlers; + if (m_AssetHandlers.TryGetValue(id, out handlers)) + { + // Someone else is already loading this asset. It will notify our handler when done. +// handlers += handlerEx; + handlers.Add(handlerEx); + return true; + } + + // Load the asset ourselves +// handlers += handlerEx; + handlers = new List(); + handlers.Add(handlerEx); + + m_AssetHandlers.Add(id, handlers); + } + + QueuedAssetRequest request = new QueuedAssetRequest(); + request.id = id; + request.uri = uri; + + m_requestQueue.Enqueue(request); + } else { handler(id, sender, asset); -- cgit v1.1 From d5ea203f934416c4c703ca899c7981b2f5ee550c Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 5 Oct 2012 00:15:55 +0200 Subject: Fix threading in remote asset connector --- .../Connectors/Asset/AssetServicesConnector.cs | 37 ++++++++++++---------- 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 9d6d9ad..7f32ad3 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -295,25 +295,30 @@ namespace OpenSim.Services.Connectors bool success = false; try { - AsynchronousRestObjectRequester.MakeRequest("GET", uri, 0, - delegate(AssetBase a) - { - if (m_Cache != null) - m_Cache.Cache(a); + AssetBase a = SynchronousRestObjectRequester.MakeRequest("GET", uri, 0, 30); + if (a != null) + { + if (m_Cache != null) + m_Cache.Cache(a); - List handlers; - lock (m_AssetHandlers) + List handlers; + lock (m_AssetHandlers) + { + handlers = m_AssetHandlers[id]; + m_AssetHandlers.Remove(id); + } + foreach (AssetRetrievedEx h in handlers) + { + Util.FireAndForget(x => { - handlers = m_AssetHandlers[id]; - m_AssetHandlers.Remove(id); - } - foreach (AssetRetrievedEx h in handlers) h.Invoke(a); - if (handlers != null) - handlers.Clear(); - }, 30); + }); + } + if (handlers != null) + handlers.Clear(); - success = true; + success = true; + } } finally { @@ -326,7 +331,7 @@ namespace OpenSim.Services.Connectors m_AssetHandlers.Remove(id); } if (handlers != null) - handlers.Clear(); + handlers.Clear(); } } } -- cgit v1.1 From 528fc5358df93ae7a6f9e32f696550d21ef3d08c Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 8 Sep 2013 18:23:06 +0200 Subject: Fix exception when brokering HG asset ids --- OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 4b502b7..8b702e0 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -137,7 +137,13 @@ namespace OpenSim.Services.Connectors string prefix = id.Substring(0, 2).ToLower(); - string host = m_UriMap[prefix]; + string host; + + // HG URLs will not be valid UUIDS + if (m_UriMap.ContainsKey(prefix)) + host = m_UriMap[prefix]; + else + host = m_UriMap["00"]; serverUri.Host = host; -- cgit v1.1 From 060984502eeabb59cade86e5e2b27db888229db3 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 17 Sep 2014 17:00:13 +0100 Subject: and another one --- OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index bf0cc35..9b0ebcf 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -284,9 +284,11 @@ namespace OpenSim.Services.Connectors byte[] ret = new byte[s.Length]; s.Read(ret, 0, (int)s.Length); + s.Close(); return ret; } + s.Close(); return null; } @@ -325,13 +327,16 @@ namespace OpenSim.Services.Connectors handlers = m_AssetHandlers[id]; m_AssetHandlers.Remove(id); } + foreach (AssetRetrievedEx h in handlers) { Util.FireAndForget(x => { - h.Invoke(a); + try { h.Invoke(a); } + catch { } }); } + if (handlers != null) handlers.Clear(); -- cgit v1.1 From f35f90bd7289598d6209d6b1de6222aff600dff5 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 18 Sep 2014 19:40:59 +0100 Subject: dont give a ring to each asset request, just one to rule them all, i mean thread not ring --- .../Connectors/Asset/AssetServicesConnector.cs | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs') diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 9b0ebcf..2c1d946 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -328,17 +328,24 @@ namespace OpenSim.Services.Connectors m_AssetHandlers.Remove(id); } - foreach (AssetRetrievedEx h in handlers) - { - Util.FireAndForget(x => + Util.FireAndForget(x => { - try { h.Invoke(a); } - catch { } + foreach (AssetRetrievedEx h in handlers) + { + // Util.FireAndForget(x => + // { + try { h.Invoke(a); } + catch { } + // }); + } + + if (handlers != null) + handlers.Clear(); + }); - } - if (handlers != null) - handlers.Clear(); +// if (handlers != null) +// handlers.Clear(); success = true; } -- cgit v1.1