Throttle the viewer's requests for region handles. Apparently Kokua is requesting this for all landmarks in inventory. Not sure why. But this seems to be the root cause of the login freeze mentioned before. This commit adds a blocking queue / process thread pattern.

This commit is contained in:
Diva Canto
2013-07-04 14:51:18 -07:00
parent d80936bbbb
commit 8265a88c4a
2 changed files with 161 additions and 18 deletions

View File

@@ -3103,7 +3103,6 @@ namespace OpenSim.Region.Framework.Scenes
{
//client.OnNameFromUUIDRequest += HandleUUIDNameRequest;
client.OnMoneyTransferRequest += ProcessMoneyTransferRequest;
client.OnRegionHandleRequest += RegionHandleRequest;
}
public virtual void SubscribeToClientNetworkEvents(IClientAPI client)
@@ -3227,7 +3226,6 @@ namespace OpenSim.Region.Framework.Scenes
{
//client.OnNameFromUUIDRequest -= HandleUUIDNameRequest;
client.OnMoneyTransferRequest -= ProcessMoneyTransferRequest;
client.OnRegionHandleRequest -= RegionHandleRequest;
}
public virtual void UnSubscribeToClientNetworkEvents(IClientAPI client)
@@ -4887,22 +4885,6 @@ namespace OpenSim.Region.Framework.Scenes
#endregion
public void RegionHandleRequest(IClientAPI client, UUID regionID)
{
m_log.DebugFormat("[SCENE]: RegionHandleRequest {0}", regionID);
ulong handle = 0;
if (regionID == RegionInfo.RegionID)
handle = RegionInfo.RegionHandle;
else
{
GridRegion r = GridService.GetRegionByUUID(UUID.Zero, regionID);
if (r != null)
handle = r.RegionHandle;
}
if (handle != 0)
client.SendRegionHandle(regionID, handle);
}
// Commented pending deletion since this method no longer appears to do anything at all
// public bool NeedSceneCacheClear(UUID agentID)