aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2008-01-26 17:00:35 +0000
committerTeravus Ovares2008-01-26 17:00:35 +0000
commit58106926bbdad0e89b941237f380d9904a642e8b (patch)
tree9cad20f4af14673db35c4e79aeb1ade4995d8d7d
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.
-rw-r--r--OpenSim/Region/ClientStack/ClientView.cs1
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs27
2 files changed, 18 insertions, 10 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index 9d9a792..370bdbb 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -2678,6 +2678,7 @@ namespace OpenSim.Region.ClientStack
2678 break; 2678 break;
2679 case PacketType.ModifyLand: 2679 case PacketType.ModifyLand:
2680 ModifyLandPacket modify = (ModifyLandPacket)Pack; 2680 ModifyLandPacket modify = (ModifyLandPacket)Pack;
2681 //MainLog.Instance.Verbose("LAND", "LAND:" + modify.ToString());
2681 if (modify.ParcelData.Length > 0) 2682 if (modify.ParcelData.Length > 0)
2682 { 2683 {
2683 if (OnModifyTerrain != null) 2684 if (OnModifyTerrain != null)
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)