aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2010-12-29 21:02:45 +0100
committerMelanie2010-12-29 21:02:45 +0100
commitdbaaccf92af588eaa07be7e97057decf79f0668e (patch)
treeff5a523a494167d9e8957aa236576e3d13096733
parentMerge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/ca... (diff)
downloadopensim-SC_OLD-dbaaccf92af588eaa07be7e97057decf79f0668e.zip
opensim-SC_OLD-dbaaccf92af588eaa07be7e97057decf79f0668e.tar.gz
opensim-SC_OLD-dbaaccf92af588eaa07be7e97057decf79f0668e.tar.bz2
opensim-SC_OLD-dbaaccf92af588eaa07be7e97057decf79f0668e.tar.xz
Copying a ref type under lock doesn't dissociate it from the source.
Use a new list to do that.
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs4
1 files changed, 2 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index deeb817..a90caa9 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1428,9 +1428,9 @@ namespace OpenSim.Region.Framework.Scenes
1428 1428
1429 private void CheckAtTargets() 1429 private void CheckAtTargets()
1430 { 1430 {
1431 Dictionary<UUID, SceneObjectGroup>.ValueCollection objs; 1431 List<SceneObjectGroup> objs = new List<SceneObjectGroup>();
1432 lock (m_groupsWithTargets) 1432 lock (m_groupsWithTargets)
1433 objs = m_groupsWithTargets.Values; 1433 objs = new List<SceneObjectGroup>(m_groupsWithTargets.Values);
1434 1434
1435 foreach (SceneObjectGroup entry in objs) 1435 foreach (SceneObjectGroup entry in objs)
1436 entry.checkAtTargets(); 1436 entry.checkAtTargets();