From 437369778d0cafa028cb30b106f043d6f073fe65 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 22 Jan 2018 02:42:50 +0000 Subject: give BlockingCollection more chances --- .../ClientStack/Linden/Caps/WebFetchInvDescModule.cs | 1 + .../CoreModules/World/Archiver/ArchiveReadRequest.cs | 11 ++--------- .../Services/Connectors/Asset/AssetServicesConnector.cs | 15 +++++++++------ 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs index c02bcb0..f6d49ee 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs @@ -232,6 +232,7 @@ namespace OpenSim.Region.ClientStack.Linden m_workerThreads = null; } } +// m_queue.Dispose(); } public string Name { get { return "WebFetchInvDescModule"; } } diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 99ff9b5..e5c9841 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs @@ -435,7 +435,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver WorkManager.RunInThread(o => { Thread.Sleep(15000); - m_log.Info("[ARCHIVER]: Starting scripts in scene objects"); + m_log.Info("[ARCHIVER]: Starting scripts in scene objects..."); foreach (DearchiveContext sceneContext in sceneContexts.Values) { @@ -447,6 +447,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver sceneContext.SceneObjects.Clear(); } + m_log.Info("[ARCHIVER]: Start scripts done"); }, null, string.Format("ReadArchiveStartScripts (request {0})", m_requestId)); } @@ -945,10 +946,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver if (m_assetService.GetMetadata(uuid) != null) { sbyte asype = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension]; - if(asype == -2) - { - - } // m_log.DebugFormat("[ARCHIVER]: found existing asset {0}",uuid); return true; @@ -958,10 +955,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver { sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension]; - if(assetType == -2) - { - - } if (assetType == (sbyte)AssetType.Unknown) { m_log.WarnFormat("[ARCHIVER]: Importing {0} byte asset {1} with unknown type", data.Length, uuid); diff --git a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs index 7e81be7..205426e 100644 --- a/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs +++ b/OpenSim/Services/Connectors/Asset/AssetServicesConnector.cs @@ -29,6 +29,7 @@ using log4net; using System; using System.Threading; using System.Collections.Generic; +using System.Collections.Concurrent; using System.IO; using System.Reflection; using System.Timers; @@ -352,8 +353,7 @@ namespace OpenSim.Services.Connectors public string id; } - private OpenSim.Framework.BlockingQueue m_requestQueue = - new OpenSim.Framework.BlockingQueue(); + private BlockingCollection m_requestQueue = new BlockingCollection(); private void AssetRequestProcessor() { @@ -361,10 +361,13 @@ namespace OpenSim.Services.Connectors while (true) { - r = m_requestQueue.Dequeue(4500); - Watchdog.UpdateThread(); - if(r== null) + if(!m_requestQueue.TryTake(out r, 4500) || r == null) + { + Watchdog.UpdateThread(); continue; + } + + Watchdog.UpdateThread(); string uri = r.uri; string id = r.id; @@ -432,7 +435,7 @@ namespace OpenSim.Services.Connectors QueuedAssetRequest request = new QueuedAssetRequest(); request.id = id; request.uri = uri; - m_requestQueue.Enqueue(request); + m_requestQueue.Add(request); } } else -- cgit v1.1