diff options
author | Teravus Ovares | 2008-01-26 17:00:35 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-01-26 17:00:35 +0000 |
commit | 58106926bbdad0e89b941237f380d9904a642e8b (patch) | |
tree | 9cad20f4af14673db35c4e79aeb1ade4995d8d7d /OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |
parent | Updated contributors list. (diff) | |
download | opensim-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 '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | 27 |
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) |