aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorUbitUmarov2018-01-22 17:09:38 +0000
committerUbitUmarov2018-01-22 17:09:38 +0000
commitd38161f83d08e8f36905faaec30fcb9bbce9a319 (patch)
tree124cba5c7363aebf02965fc0702133c4e81f6874 /OpenSim/Region/CoreModules
parentgive BlockingCollection more chances (diff)
downloadopensim-SC-d38161f83d08e8f36905faaec30fcb9bbce9a319.zip
opensim-SC-d38161f83d08e8f36905faaec30fcb9bbce9a319.tar.gz
opensim-SC-d38161f83d08e8f36905faaec30fcb9bbce9a319.tar.bz2
opensim-SC-d38161f83d08e8f36905faaec30fcb9bbce9a319.tar.xz
retire our BlockingQueue replaced by BlockingCollection and cross fingers
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs12
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs13
2 files changed, 14 insertions, 11 deletions
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 3c45b68..0ca76e4 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -26,7 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections; 29using System.Collections.Concurrent;
30using System.Collections.Generic; 30using System.Collections.Generic;
31using System.IO; 31using System.IO;
32using System.Linq; 32using System.Linq;
@@ -668,7 +668,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
668 public UUID user; 668 public UUID user;
669 } 669 }
670 670
671 private OpenSim.Framework.BlockingQueue<EstateAccessDeltaRequest> deltaRequests = new OpenSim.Framework.BlockingQueue<EstateAccessDeltaRequest>(); 671 private BlockingCollection<EstateAccessDeltaRequest> deltaRequests = new BlockingCollection<EstateAccessDeltaRequest>();
672 672
673 private void handleEstateAccessDeltaRequest(IClientAPI _remote_client, UUID _invoice, int _estateAccessType, UUID _user) 673 private void handleEstateAccessDeltaRequest(IClientAPI _remote_client, UUID _invoice, int _estateAccessType, UUID _user)
674 { 674 {
@@ -683,7 +683,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
683 newreq.estateAccessType = _estateAccessType; 683 newreq.estateAccessType = _estateAccessType;
684 newreq.user = _user; 684 newreq.user = _user;
685 685
686 deltaRequests.Enqueue(newreq); 686 deltaRequests.Add(newreq);
687 687
688 lock(deltareqLock) 688 lock(deltareqLock)
689 { 689 {
@@ -713,9 +713,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
713 bool sentGroupsFull = false; 713 bool sentGroupsFull = false;
714 bool sentManagersFull = false; 714 bool sentManagersFull = false;
715 715
716 EstateAccessDeltaRequest req;
716 while(Scene.IsRunning) 717 while(Scene.IsRunning)
717 { 718 {
718 EstateAccessDeltaRequest req = deltaRequests.Dequeue(500); 719 req = null;
720 deltaRequests.TryTake(out req, 500);
719 721
720 if(!Scene.IsRunning) 722 if(!Scene.IsRunning)
721 break; 723 break;
@@ -757,7 +759,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
757 changed.Clear(); 759 changed.Clear();
758 lock(deltareqLock) 760 lock(deltareqLock)
759 { 761 {
760 if(deltaRequests.Count() != 0) 762 if(deltaRequests.Count != 0)
761 continue; 763 continue;
762 runnigDeltaExec = false; 764 runnigDeltaExec = false;
763 return; 765 return;
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index 03a4d34..b5a6912 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -27,6 +27,7 @@
27 27
28using System; 28using System;
29using System.Collections; 29using System.Collections;
30using System.Collections.Concurrent;
30using System.Collections.Generic; 31using System.Collections.Generic;
31using System.Drawing; 32using System.Drawing;
32using System.Drawing.Imaging; 33using System.Drawing.Imaging;
@@ -67,7 +68,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
67 private static readonly string DEFAULT_WORLD_MAP_EXPORT_PATH = "exportmap.jpg"; 68 private static readonly string DEFAULT_WORLD_MAP_EXPORT_PATH = "exportmap.jpg";
68 private static readonly UUID STOP_UUID = UUID.Random(); 69 private static readonly UUID STOP_UUID = UUID.Random();
69 70
70 private OpenSim.Framework.BlockingQueue<MapRequestState> requests = new OpenSim.Framework.BlockingQueue<MapRequestState>(); 71 private BlockingCollection<MapRequestState> requests = new BlockingCollection<MapRequestState>();
71 72
72 private ManualResetEvent m_mapBlockRequestEvent = new ManualResetEvent(false); 73 private ManualResetEvent m_mapBlockRequestEvent = new ManualResetEvent(false);
73 private Dictionary<UUID, Queue<MapBlockRequestData>> m_mapBlockRequests = new Dictionary<UUID, Queue<MapBlockRequestData>>(); 74 private Dictionary<UUID, Queue<MapBlockRequestData>> m_mapBlockRequests = new Dictionary<UUID, Queue<MapBlockRequestData>>();
@@ -422,7 +423,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
422 st.itemtype = 0; 423 st.itemtype = 0;
423 st.regionhandle = 0; 424 st.regionhandle = 0;
424 425
425 requests.Enqueue(st); 426 requests.Add(st);
426 427
427 MapBlockRequestData req = new MapBlockRequestData(); 428 MapBlockRequestData req = new MapBlockRequestData();
428 429
@@ -719,7 +720,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
719 av = null; 720 av = null;
720 st = null; 721 st = null;
721 722
722 st = requests.Dequeue(4500); 723 requests.TryTake(out st, 4500);
723 Watchdog.UpdateThread(); 724 Watchdog.UpdateThread();
724 725
725 if (st == null || st.agentID == UUID.Zero) 726 if (st == null || st.agentID == UUID.Zero)
@@ -795,8 +796,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
795 else 796 else
796 { 797 {
797 // request still beeing processed, enqueue it back 798 // request still beeing processed, enqueue it back
798 requests.Enqueue(st); 799 requests.Add(st);
799 if (requests.Count() < 3) 800 if (requests.Count < 3)
800 Thread.Sleep(100); 801 Thread.Sleep(100);
801 } 802 }
802 } 803 }
@@ -839,7 +840,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
839 st.itemtype = itemtype; 840 st.itemtype = itemtype;
840 st.regionhandle = regionhandle; 841 st.regionhandle = regionhandle;
841 842
842 requests.Enqueue(st); 843 requests.Add(st);
843 } 844 }
844 845
845 uint[] itemTypesForcedSend = new uint[] { 6, 1, 7, 10 }; // green dots, infohub, land sells 846 uint[] itemTypesForcedSend = new uint[] { 6, 1, 7, 10 }; // green dots, infohub, land sells