diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index a31e0aa..d4fbdce 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -30,7 +30,6 @@ using System.Collections.Generic; | |||
30 | using System.Net; | 30 | using System.Net; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using System.Threading; | 32 | using System.Threading; |
33 | |||
34 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Capabilities; | 34 | using OpenSim.Framework.Capabilities; |
36 | using OpenSim.Framework.Client; | 35 | using OpenSim.Framework.Client; |
@@ -596,7 +595,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
596 | 595 | ||
597 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 596 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
598 | { | 597 | { |
599 | // Thread.Sleep(5000); | 598 | // We need to delay here because Imprudence viewers, unlike v1 or v3, have a short (<200ms, <500ms) delay before |
599 | // they regard the new region as the current region after receiving the AgentMovementComplete | ||
600 | // response. If close is sent before then, it will cause the viewer to quit instead. | ||
601 | // However, if this delay is longer, then a viewer can teleport back to this region and experience | ||
602 | // a failure because the old ScenePresence has not yet been cleaned up. | ||
603 | Thread.Sleep(2000); | ||
604 | |||
600 | sp.Close(); | 605 | sp.Close(); |
601 | sp.Scene.IncomingCloseAgent(sp.UUID); | 606 | sp.Scene.IncomingCloseAgent(sp.UUID); |
602 | } | 607 | } |
@@ -1913,12 +1918,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1913 | Thread.Sleep(100); | 1918 | Thread.Sleep(100); |
1914 | } | 1919 | } |
1915 | 1920 | ||
1916 | if (count > 0) | 1921 | return count > 0; |
1917 | return true; | ||
1918 | else | ||
1919 | return false; | ||
1920 | |||
1921 | return true; | ||
1922 | } | 1922 | } |
1923 | 1923 | ||
1924 | protected void SetInTransit(UUID id) | 1924 | protected void SetInTransit(UUID id) |