diff options
author | Justin Clarke Casey | 2008-03-12 18:11:08 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-03-12 18:11:08 +0000 |
commit | b9ef6ed0471d19e0e64330cb4020d1de26fd8f1c (patch) | |
tree | 6cb89452484b651b6dbfa43dcca4a5cc399ff9a4 /OpenSim/Region/Environment/Scenes/InnerScene.cs | |
parent | * Since remoting exceptions occur quite often in some cases (e.g. when a neig... (diff) | |
download | opensim-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.cs | 15 |
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 | } |