diff options
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 23 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 4 |
2 files changed, 21 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 1b72b26..43167ee 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -1631,11 +1631,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1631 | CompleteAgentMovementPacket packet = (CompleteAgentMovementPacket)array[1]; | 1631 | CompleteAgentMovementPacket packet = (CompleteAgentMovementPacket)array[1]; |
1632 | 1632 | ||
1633 | // Determine which agent this packet came from | 1633 | // Determine which agent this packet came from |
1634 | int count = 10; | 1634 | int count = 20; |
1635 | while (!m_scene.TryGetClient(endPoint, out client) && count-- > 0) | 1635 | bool ready = false; |
1636 | while (!ready && count-- > 0) | ||
1636 | { | 1637 | { |
1637 | m_log.Debug("[LLUDPSERVER]: Received a CompleteMovementIntoRegion in " + m_scene.RegionInfo.RegionName + " (not ready yet)"); | 1638 | if (m_scene.TryGetClient(endPoint, out client) && client.IsActive) |
1638 | Thread.Sleep(200); | 1639 | { |
1640 | LLUDPClient udpClient = ((LLClientView)client).UDPClient; | ||
1641 | if (udpClient != null && udpClient.IsConnected) | ||
1642 | ready = true; | ||
1643 | else | ||
1644 | { | ||
1645 | m_log.Debug("[LLUDPSERVER]: Received a CompleteMovementIntoRegion in " + m_scene.RegionInfo.RegionName + " (not ready yet)"); | ||
1646 | Thread.Sleep(200); | ||
1647 | } | ||
1648 | } | ||
1649 | else | ||
1650 | { | ||
1651 | m_log.Debug("[LLUDPSERVER]: Received a CompleteMovementIntoRegion in " + m_scene.RegionInfo.RegionName + " (not ready yet)"); | ||
1652 | Thread.Sleep(200); | ||
1653 | } | ||
1639 | } | 1654 | } |
1640 | 1655 | ||
1641 | if (client == null) | 1656 | if (client == null) |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index da8a1b8..84fdef0 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -4226,10 +4226,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
4226 | if (cAgentData.SenderWantsToWaitForRoot) | 4226 | if (cAgentData.SenderWantsToWaitForRoot) |
4227 | { | 4227 | { |
4228 | while (childAgentUpdate.IsChildAgent && ntimes-- > 0) | 4228 | while (childAgentUpdate.IsChildAgent && ntimes-- > 0) |
4229 | Thread.Sleep(500); | 4229 | Thread.Sleep(1000); |
4230 | 4230 | ||
4231 | m_log.DebugFormat( | 4231 | m_log.DebugFormat( |
4232 | "[SCENE PRESENCE]: Found presence {0} {1} {2} in {3} after {4} waits", | 4232 | "[SCENE]: Found presence {0} {1} {2} in {3} after {4} waits", |
4233 | childAgentUpdate.Name, childAgentUpdate.UUID, childAgentUpdate.IsChildAgent ? "child" : "root", RegionInfo.RegionName, 20 - ntimes); | 4233 | childAgentUpdate.Name, childAgentUpdate.UUID, childAgentUpdate.IsChildAgent ? "child" : "root", RegionInfo.RegionName, 20 - ntimes); |
4234 | 4234 | ||
4235 | if (childAgentUpdate.IsChildAgent) | 4235 | if (childAgentUpdate.IsChildAgent) |