diff options
author | UbitUmarov | 2018-01-22 17:09:38 +0000 |
---|---|---|
committer | UbitUmarov | 2018-01-22 17:09:38 +0000 |
commit | d38161f83d08e8f36905faaec30fcb9bbce9a319 (patch) | |
tree | 124cba5c7363aebf02965fc0702133c4e81f6874 /OpenSim/Region/CoreModules | |
parent | give BlockingCollection more chances (diff) | |
download | opensim-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.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | 13 |
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 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections; | 29 | using System.Collections.Concurrent; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.IO; | 31 | using System.IO; |
32 | using System.Linq; | 32 | using 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 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.Collections.Concurrent; | ||
30 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
31 | using System.Drawing; | 32 | using System.Drawing; |
32 | using System.Drawing.Imaging; | 33 | using 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 |