diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 756853be93..515b1d6bbb 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs @@ -1214,10 +1214,14 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer m_entityTransferStateMachine.UpdateInTransit(sp.UUID, AgentTransferState.CleaningUp); - if(logout) + /* now some viewers also need time bf closing child regions + * so this is moved down and delay added + + if (logout) sp.closeAllChildAgents(); else sp.CloseChildAgents(childRegionsToClose); + */ sp.HasMovedAway(!(OutSideViewRange || logout)); @@ -1229,6 +1233,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer // Now let's make it officially a child agent sp.MakeChildAgent(destinationHandle); + Thread.Sleep(2000); + + if (logout) + sp.closeAllChildAgents(); + else + sp.CloseChildAgents(childRegionsToClose); + // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone // goes by HG hook if (NeedsClosing(reg, OutSideViewRange)) @@ -1240,7 +1251,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer } // viewers and target region take extra time to process the tp - Thread.Sleep(2000); +// Thread.Sleep(2000); m_log.DebugFormat( "[ENTITY TRANSFER MODULE]: Closing agent {0} in {1} after teleport", sp.Name, Scene.Name); sp.Scene.CloseAgent(sp.UUID, false);