aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/InnerScene.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-03-12 18:11:08 +0000
committerJustin Clarke Casey2008-03-12 18:11:08 +0000
commitb9ef6ed0471d19e0e64330cb4020d1de26fd8f1c (patch)
tree6cb89452484b651b6dbfa43dcca4a5cc399ff9a4 /OpenSim/Region/Environment/Scenes/InnerScene.cs
parent* Since remoting exceptions occur quite often in some cases (e.g. when a neig... (diff)
downloadopensim-SC_OLD-b9ef6ed0471d19e0e64330cb4020d1de26fd8f1c.zip
opensim-SC_OLD-b9ef6ed0471d19e0e64330cb4020d1de26fd8f1c.tar.gz
opensim-SC_OLD-b9ef6ed0471d19e0e64330cb4020d1de26fd8f1c.tar.bz2
opensim-SC_OLD-b9ef6ed0471d19e0e64330cb4020d1de26fd8f1c.tar.xz
* Don't abort (and keep failing) the update if one Entity gives us an exception when we try to update it
* This doesn't remove bug 757, but does largely remove the worst consequences
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 }