* 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.

ThreadPoolClientBranch
Teravus Ovares 2008-01-26 17:00:35 +00:00
parent f0d6f89c2c
commit 58106926bb
2 changed files with 18 additions and 10 deletions

View File

@ -2678,6 +2678,7 @@ namespace OpenSim.Region.ClientStack
break; break;
case PacketType.ModifyLand: case PacketType.ModifyLand:
ModifyLandPacket modify = (ModifyLandPacket)Pack; ModifyLandPacket modify = (ModifyLandPacket)Pack;
//MainLog.Instance.Verbose("LAND", "LAND:" + modify.ToString());
if (modify.ParcelData.Length > 0) if (modify.ParcelData.Length > 0)
{ {
if (OnModifyTerrain != null) if (OnModifyTerrain != null)

View File

@ -344,7 +344,8 @@ namespace OpenSim.Region.Environment.Scenes
private void SendChildAgentDataUpdateAsync(ChildAgentDataUpdate cAgentData, ScenePresence presence) private void SendChildAgentDataUpdateAsync(ChildAgentDataUpdate cAgentData, ScenePresence presence)
{ {
//MainLog.Instance.Notice("INTERGRID", "Informing neighbors about my agent."); //MainLog.Instance.Notice("INTERGRID", "Informing neighbors about my agent.");
try
{
foreach (ulong regionHandle in presence.KnownChildRegions) foreach (ulong regionHandle in presence.KnownChildRegions)
{ {
bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData); bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData);
@ -359,6 +360,12 @@ namespace OpenSim.Region.Environment.Scenes
} }
} }
} }
catch (System.InvalidOperationException)
{
// We're ignoring a collection was modified error because this data gets old and outdated fast.
}
}
private void SendChildAgentDataUpdateCompleted(IAsyncResult iar) private void SendChildAgentDataUpdateCompleted(IAsyncResult iar)
{ {