* 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,20 +344,27 @@ 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)
{ {
bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData); foreach (ulong regionHandle in presence.KnownChildRegions)
{
bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData);
if (regionAccepted) if (regionAccepted)
{ {
//MainLog.Instance.Notice("INTERGRID", "Completed sending a neighbor an update about my agent"); //MainLog.Instance.Notice("INTERGRID", "Completed sending a neighbor an update about my agent");
} }
else else
{ {
//MainLog.Instance.Notice("INTERGRID", "Failed sending a neighbor an update about my agent"); //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) private void SendChildAgentDataUpdateCompleted(IAsyncResult iar)