aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/InnerScene.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/InnerScene.cs15
1 files changed, 14 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index 02d0e20..7d21935 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -217,13 +217,26 @@ namespace OpenSim.Region.Environment.Scenes
217 } 217 }
218 } 218 }
219 219
220 /// <summary>
221 /// Process all pending updates
222 /// </summary>
220 internal void ProcessUpdates() 223 internal void ProcessUpdates()
221 { 224 {
222 lock (m_updateList) 225 lock (m_updateList)
223 { 226 {
224 for (int i = 0; i < m_updateList.Count; i++) 227 for (int i = 0; i < m_updateList.Count; i++)
225 { 228 {
226 m_updateList[i].Update(); 229 EntityBase entity = m_updateList[i];
230
231 // Don't abort the whole update if one entity happens to give us an exception.
232 try
233 {
234 m_updateList[i].Update();
235 }
236 catch (Exception e)
237 {
238 m_log.ErrorFormat("[INNERSCENE]: Failed to update {0}, {1} - {2}", entity.Name, entity.m_uuid, e);
239 }
227 } 240 }
228 m_updateList.Clear(); 241 m_updateList.Clear();
229 } 242 }