diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 902ae22ea8..4126b3be1f 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs @@ -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 diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 9996f6e54c..c3deeaf37f 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -4076,6 +4076,9 @@ namespace OpenSim.Region.Framework.Scenes uint x, y; spRegionSizeInfo regInfo; + // this should not be here + IEventQueue eventQueue = Scene.RequestModuleInterface(); + 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); } } }