aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World
diff options
context:
space:
mode:
authorJohn Hurliman2009-10-06 15:54:00 -0700
committerJohn Hurliman2009-10-06 15:54:00 -0700
commit832cc685138b2244529f10b54b373c34adb4a633 (patch)
tree888cf05d2d0bacdd8acec47150075423d07ed3ee /OpenSim/Region/CoreModules/World
parentChecks the number of ThreadPool and IOCP threads on startup and bumps up the ... (diff)
parentRewrote parts of the code that were double-locking different objects. This is... (diff)
downloadopensim-SC_OLD-832cc685138b2244529f10b54b373c34adb4a633.zip
opensim-SC_OLD-832cc685138b2244529f10b54b373c34adb4a633.tar.gz
opensim-SC_OLD-832cc685138b2244529f10b54b373c34adb4a633.tar.bz2
opensim-SC_OLD-832cc685138b2244529f10b54b373c34adb4a633.tar.xz
Merging in diva's locking fixes
Diffstat (limited to 'OpenSim/Region/CoreModules/World')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index d2b5cb1..0fed1bd 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -187,14 +187,16 @@ namespace OpenSim.Region.CoreModules.World.Land
187 LandData newData = data.Copy(); 187 LandData newData = data.Copy();
188 newData.LocalID = local_id; 188 newData.LocalID = local_id;
189 189
190 ILandObject land = null;
190 lock (m_landList) 191 lock (m_landList)
191 { 192 {
192 if (m_landList.ContainsKey(local_id)) 193 if (m_landList.ContainsKey(local_id))
193 { 194 {
194 m_landList[local_id].LandData = newData; 195 m_landList[local_id].LandData = newData;
195 m_scene.EventManager.TriggerLandObjectUpdated((uint)local_id, m_landList[local_id]); 196 land = m_landList[local_id];
196 } 197 }
197 } 198 }
199 m_scene.EventManager.TriggerLandObjectUpdated((uint)local_id, land);
198 } 200 }
199 201
200 public bool AllowedForcefulBans 202 public bool AllowedForcefulBans
@@ -504,6 +506,7 @@ namespace OpenSim.Region.CoreModules.World.Land
504 /// <param name="local_id">Land.localID of the peice of land to remove.</param> 506 /// <param name="local_id">Land.localID of the peice of land to remove.</param>
505 public void removeLandObject(int local_id) 507 public void removeLandObject(int local_id)
506 { 508 {
509 UUID id = UUID.Zero;
507 lock (m_landList) 510 lock (m_landList)
508 { 511 {
509 for (int x = 0; x < 64; x++) 512 for (int x = 0; x < 64; x++)
@@ -520,9 +523,10 @@ namespace OpenSim.Region.CoreModules.World.Land
520 } 523 }
521 } 524 }
522 525
523 m_scene.EventManager.TriggerLandObjectRemoved(m_landList[local_id].LandData.GlobalID); 526 id = m_landList[local_id].LandData.GlobalID;
524 m_landList.Remove(local_id); 527 m_landList.Remove(local_id);
525 } 528 }
529 m_scene.EventManager.TriggerLandObjectRemoved(id);
526 } 530 }
527 531
528 private void performFinalLandJoin(ILandObject master, ILandObject slave) 532 private void performFinalLandJoin(ILandObject master, ILandObject slave)