aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authorTeravus Ovares2008-01-26 17:00:35 +0000
committerTeravus Ovares2008-01-26 17:00:35 +0000
commit58106926bbdad0e89b941237f380d9904a642e8b (patch)
tree9cad20f4af14673db35c4e79aeb1ade4995d8d7d /OpenSim/Region/Environment/Scenes
parentUpdated contributors list. (diff)
downloadopensim-SC-58106926bbdad0e89b941237f380d9904a642e8b.zip
opensim-SC-58106926bbdad0e89b941237f380d9904a642e8b.tar.gz
opensim-SC-58106926bbdad0e89b941237f380d9904a642e8b.tar.bz2
opensim-SC-58106926bbdad0e89b941237f380d9904a642e8b.tar.xz
* Added a try/catch handler around childdataupdates because the enumeration is prone to modification when logging on. These can be safely ignored because the data gets old fast and new ones get generated somewhat quickly.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs27
1 files changed, 17 insertions, 10 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
index 805b44c..2bb36a3 100644
--- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
@@ -344,20 +344,27 @@ namespace OpenSim.Region.Environment.Scenes
344 private void SendChildAgentDataUpdateAsync(ChildAgentDataUpdate cAgentData, ScenePresence presence) 344 private void SendChildAgentDataUpdateAsync(ChildAgentDataUpdate cAgentData, ScenePresence presence)
345 { 345 {
346 //MainLog.Instance.Notice("INTERGRID", "Informing neighbors about my agent."); 346 //MainLog.Instance.Notice("INTERGRID", "Informing neighbors about my agent.");
347 347 try
348 foreach (ulong regionHandle in presence.KnownChildRegions)
349 { 348 {
350 bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData); 349 foreach (ulong regionHandle in presence.KnownChildRegions)
351
352 if (regionAccepted)
353 { 350 {
354 //MainLog.Instance.Notice("INTERGRID", "Completed sending a neighbor an update about my agent"); 351 bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData);
355 } 352
356 else 353 if (regionAccepted)
357 { 354 {
358 //MainLog.Instance.Notice("INTERGRID", "Failed sending a neighbor an update about my agent"); 355 //MainLog.Instance.Notice("INTERGRID", "Completed sending a neighbor an update about my agent");
356 }
357 else
358 {
359 //MainLog.Instance.Notice("INTERGRID", "Failed sending a neighbor an update about my agent");
360 }
359 } 361 }
360 } 362 }
363 catch (System.InvalidOperationException)
364 {
365 // We're ignoring a collection was modified error because this data gets old and outdated fast.
366 }
367
361 } 368 }
362 369
363 private void SendChildAgentDataUpdateCompleted(IAsyncResult iar) 370 private void SendChildAgentDataUpdateCompleted(IAsyncResult iar)