aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorDiva Canto2009-09-29 07:54:56 -0700
committerDiva Canto2009-09-29 07:54:56 -0700
commitbc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b (patch)
tree5121122359f534bb2738c8fe7664c5451a0b166d /OpenSim/Region/Framework/Scenes
parentRemove empty CheckSumServer.cs file. (diff)
downloadopensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.zip
opensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.tar.gz
opensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.tar.bz2
opensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.tar.xz
A little hack to see if this fixes the problems with ~20% of SOG's becoming phantom after an import to megaregions.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs5
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs17
2 files changed, 22 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index bb47ff4..39f3007 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4141,6 +4141,11 @@ namespace OpenSim.Region.Framework.Scenes
4141 m_sceneGraph.ForEachClient(action); 4141 m_sceneGraph.ForEachClient(action);
4142 } 4142 }
4143 4143
4144 public void ForEachSOG(Action<SceneObjectGroup> action)
4145 {
4146 m_sceneGraph.ForEachSOG(action);
4147 }
4148
4144 /// <summary> 4149 /// <summary>
4145 /// Returns a list of the entities in the scene. This is a new list so operations perform on the list itself 4150 /// Returns a list of the entities in the scene. This is a new list so operations perform on the list itself
4146 /// will not affect the original list of objects in the scene. 4151 /// will not affect the original list of objects in the scene.
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 48dea07..0c471aa 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1134,6 +1134,23 @@ namespace OpenSim.Region.Framework.Scenes
1134 } 1134 }
1135 } 1135 }
1136 1136
1137 protected internal void ForEachSOG(Action<SceneObjectGroup> action)
1138 {
1139 List<SceneObjectGroup> objlist = new List<SceneObjectGroup>(SceneObjectGroupsByFullID.Values);
1140 foreach (SceneObjectGroup obj in objlist)
1141 {
1142 try
1143 {
1144 action(obj);
1145 }
1146 catch (Exception e)
1147 {
1148 // Catch it and move on. This includes situations where splist has inconsistent info
1149 m_log.WarnFormat("[SCENE]: Problem processing action in ForEachSOG: ", e.Message);
1150 }
1151 }
1152 }
1153
1137 #endregion 1154 #endregion
1138 1155
1139 #region Client Event handlers 1156 #region Client Event handlers