* 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;
case PacketType.ModifyLand:
ModifyLandPacket modify = (ModifyLandPacket)Pack;
//MainLog.Instance.Verbose("LAND", "LAND:" + modify.ToString());
if (modify.ParcelData.Length > 0)
{
if (OnModifyTerrain != null)

View File

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