diff options
author | Justin Clark-Casey (justincc) | 2013-07-26 01:40:56 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-07-26 01:40:56 +0100 |
commit | 4cd03d8c314864eeeb9f11b34fc7e687ac96b858 (patch) | |
tree | 310219dcd453c4a92e46720be2f5a7c585b83a9e | |
parent | Reset DoNotClose scene presence teleport flag before pausing. Rename DoNotCl... (diff) | |
download | opensim-SC_OLD-4cd03d8c314864eeeb9f11b34fc7e687ac96b858.zip opensim-SC_OLD-4cd03d8c314864eeeb9f11b34fc7e687ac96b858.tar.gz opensim-SC_OLD-4cd03d8c314864eeeb9f11b34fc7e687ac96b858.tar.bz2 opensim-SC_OLD-4cd03d8c314864eeeb9f11b34fc7e687ac96b858.tar.xz |
Return Simulator/0.1 (V1) entity transfer behaviour to waiting only 2 seconds before closing root agent after 15.
This is because a returning viewer by teleport before 15 seconds are up will be disrupted by the close.
The 2 second delay is within the scope where a normal viewer would not allow a teleport back anyway.
Simulator/0.2 (V2) protocol will continue with the longer delay since this is actually the behaviour viewers get from the ll grid
and an early close causes other issues (avatar being sent to infinite locations temporarily, etc.)
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 8ce6bb4..3f1686c 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -916,13 +916,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
916 | 916 | ||
917 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 917 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
918 | { | 918 | { |
919 | // RED ALERT!!!! | 919 | // We need to delay here because Imprudence viewers, unlike v1 or v3, have a short (<200ms, <500ms) delay before |
920 | // PLEASE DO NOT DECREASE THIS WAIT TIME UNDER ANY CIRCUMSTANCES. | 920 | // they regard the new region as the current region after receiving the AgentMovementComplete |
921 | // THE VIEWERS SEEM TO NEED SOME TIME AFTER RECEIVING MoveAgentIntoRegion | 921 | // response. If close is sent before then, it will cause the viewer to quit instead. |
922 | // BEFORE THEY SETTLE IN THE NEW REGION. | 922 | // |
923 | // DECREASING THE WAIT TIME HERE WILL EITHER RESULT IN A VIEWER CRASH OR | 923 | // This sleep can be increased if necessary. However, whilst it's active, |
924 | // IN THE AVIE BEING PLACED IN INFINITY FOR A COUPLE OF SECONDS. | 924 | // an agent cannot teleport back to this region if it has teleported away. |
925 | Thread.Sleep(15000); | 925 | Thread.Sleep(2000); |
926 | 926 | ||
927 | sp.Scene.IncomingCloseAgent(sp.UUID, false); | 927 | sp.Scene.IncomingCloseAgent(sp.UUID, false); |
928 | } | 928 | } |