send DisableSimulator messages on closing childagents. Possible still not on at best timming, or on the right source files

avinationmerge
UbitUmarov 2015-10-01 20:50:12 +01:00
parent 6bc479fecd
commit 6ae7341e42
2 changed files with 18 additions and 3 deletions

View File

@ -1112,7 +1112,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
// This sleep can be increased if necessary. However, whilst it's active,
// an agent cannot teleport back to this region if it has teleported away.
Thread.Sleep(2000);
if (m_eqModule != null)
m_eqModule.DisableSimulator(sp.RegionHandle,sp.UUID);
Thread.Sleep(500);
sp.Scene.CloseAgent(sp.UUID, false);
}
}
@ -1256,8 +1258,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
// BEFORE THEY SETTLE IN THE NEW REGION.
// DECREASING THE WAIT TIME HERE WILL EITHER RESULT IN A VIEWER CRASH OR
// IN THE AVIE BEING PLACED IN INFINITY FOR A COUPLE OF SECONDS.
Thread.Sleep(15000);
Thread.Sleep(14000);
if (m_eqModule != null)
m_eqModule.DisableSimulator(sp.RegionHandle,sp.UUID);
Thread.Sleep(1000);
// OK, it got this agent. Let's close everything
// If we shouldn't close the agent due to some other region renewing the connection
// then this will be handled in IncomingCloseAgent under lock conditions

View File

@ -4076,6 +4076,9 @@ namespace OpenSim.Region.Framework.Scenes
uint x, y;
spRegionSizeInfo regInfo;
// this should not be here
IEventQueue eventQueue = Scene.RequestModuleInterface<IEventQueue>();
foreach (ulong handle in knownRegions)
{
// Don't close the agent on this region yet
@ -4095,6 +4098,9 @@ namespace OpenSim.Region.Framework.Scenes
regInfo.sizeX, regInfo.sizeY, newRegionSizeX, newRegionSizeY))
{
byebyeRegions.Add(handle);
// this should not be here
if(eventQueue != null)
eventQueue.DisableSimulator(handle,UUID);
}
}
else
@ -4103,6 +4109,9 @@ namespace OpenSim.Region.Framework.Scenes
(int)Constants.RegionSize, (int)Constants.RegionSize, newRegionSizeX, newRegionSizeY))
{
byebyeRegions.Add(handle);
// this should not be here
if(eventQueue != null)
eventQueue.DisableSimulator(handle,UUID);
}
}
}