diff options
author | Melanie | 2013-05-08 21:14:52 +0100 |
---|---|---|
committer | Melanie | 2013-05-08 21:14:52 +0100 |
commit | 543d1fe70b54fb26d7ce19b397468c66269f0e20 (patch) | |
tree | 14cda2d0364fad3f54d0474bda6f1f9afca72c7d /OpenSim/Region | |
parent | Adds an event and a method so that handling of the CachedTexture (diff) | |
download | opensim-SC_OLD-543d1fe70b54fb26d7ce19b397468c66269f0e20.zip opensim-SC_OLD-543d1fe70b54fb26d7ce19b397468c66269f0e20.tar.gz opensim-SC_OLD-543d1fe70b54fb26d7ce19b397468c66269f0e20.tar.bz2 opensim-SC_OLD-543d1fe70b54fb26d7ce19b397468c66269f0e20.tar.xz |
Guard the scene list when estates are updated
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Estate/XEstateConnector.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Estate/XEstateModule.cs | 6 |
2 files changed, 14 insertions, 9 deletions
diff --git a/OpenSim/Region/CoreModules/World/Estate/XEstateConnector.cs b/OpenSim/Region/CoreModules/World/Estate/XEstateConnector.cs index 948c893..73e706c 100644 --- a/OpenSim/Region/CoreModules/World/Estate/XEstateConnector.cs +++ b/OpenSim/Region/CoreModules/World/Estate/XEstateConnector.cs | |||
@@ -136,15 +136,18 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
136 | 136 | ||
137 | // Handle local regions locally | 137 | // Handle local regions locally |
138 | // | 138 | // |
139 | foreach (Scene s in m_EstateModule.Scenes) | 139 | lock (m_EstateModule.Scenes) |
140 | { | 140 | { |
141 | if (regions.Contains(s.RegionInfo.RegionID)) | 141 | foreach (Scene s in m_EstateModule.Scenes) |
142 | { | 142 | { |
143 | // All regions in one estate are in the same scope. | 143 | if (regions.Contains(s.RegionInfo.RegionID)) |
144 | // Use that scope. | 144 | { |
145 | // | 145 | // All regions in one estate are in the same scope. |
146 | ScopeID = s.RegionInfo.ScopeID; | 146 | // Use that scope. |
147 | regions.Remove(s.RegionInfo.RegionID); | 147 | // |
148 | ScopeID = s.RegionInfo.ScopeID; | ||
149 | regions.Remove(s.RegionInfo.RegionID); | ||
150 | } | ||
148 | } | 151 | } |
149 | } | 152 | } |
150 | 153 | ||
diff --git a/OpenSim/Region/CoreModules/World/Estate/XEstateModule.cs b/OpenSim/Region/CoreModules/World/Estate/XEstateModule.cs index 1f099c6..f54ab2c 100644 --- a/OpenSim/Region/CoreModules/World/Estate/XEstateModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/XEstateModule.cs | |||
@@ -93,7 +93,8 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
93 | 93 | ||
94 | public void AddRegion(Scene scene) | 94 | public void AddRegion(Scene scene) |
95 | { | 95 | { |
96 | m_Scenes.Add(scene); | 96 | lock (m_Scenes) |
97 | m_Scenes.Add(scene); | ||
97 | 98 | ||
98 | scene.EventManager.OnNewClient += OnNewClient; | 99 | scene.EventManager.OnNewClient += OnNewClient; |
99 | } | 100 | } |
@@ -111,7 +112,8 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
111 | { | 112 | { |
112 | scene.EventManager.OnNewClient -= OnNewClient; | 113 | scene.EventManager.OnNewClient -= OnNewClient; |
113 | 114 | ||
114 | m_Scenes.Remove(scene); | 115 | lock (m_Scenes) |
116 | m_Scenes.Remove(scene); | ||
115 | } | 117 | } |
116 | 118 | ||
117 | public string Name | 119 | public string Name |