aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorUbitUmarov2019-04-02 13:49:25 +0100
committerUbitUmarov2019-04-02 13:49:25 +0100
commit1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b (patch)
tree6d3b8a2b3348c904103b99b0987421da5effbdf0 /OpenSim/Region/Framework
parentminor cleanup on mesh decompress code (diff)
downloadopensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.zip
opensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.tar.gz
opensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.tar.bz2
opensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.tar.xz
add extra delay before sending initial data
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs18
1 files changed, 12 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 5faa764..8c46211 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -290,7 +290,7 @@ namespace OpenSim.Region.Framework.Scenes
290 private Quaternion m_lastRotation; 290 private Quaternion m_lastRotation;
291 private Vector3 m_lastVelocity; 291 private Vector3 m_lastVelocity;
292 private Vector3 m_lastSize = new Vector3(0.45f,0.6f,1.9f); 292 private Vector3 m_lastSize = new Vector3(0.45f,0.6f,1.9f);
293 private bool NeedInitialData = false; 293 private int NeedInitialData = -1;
294 294
295 private int m_userFlags; 295 private int m_userFlags;
296 public int UserFlags 296 public int UserFlags
@@ -3809,7 +3809,7 @@ namespace OpenSim.Region.Framework.Scenes
3809 if (IsDeleted) 3809 if (IsDeleted)
3810 return; 3810 return;
3811 3811
3812 if (NeedInitialData) 3812 if (NeedInitialData > 0)
3813 { 3813 {
3814 SendInitialData(); 3814 SendInitialData();
3815 return; 3815 return;
@@ -4005,7 +4005,7 @@ namespace OpenSim.Region.Framework.Scenes
4005 if(m_gotRegionHandShake) 4005 if(m_gotRegionHandShake)
4006 return; 4006 return;
4007 m_gotRegionHandShake = true; 4007 m_gotRegionHandShake = true;
4008 NeedInitialData = true; 4008 NeedInitialData = 1;
4009 } 4009 }
4010 } 4010 }
4011 4011
@@ -4017,15 +4017,21 @@ namespace OpenSim.Region.Framework.Scenes
4017 4017
4018// lock (m_completeMovementLock) 4018// lock (m_completeMovementLock)
4019 { 4019 {
4020 if(!NeedInitialData) 4020 if(NeedInitialData < 0)
4021 return;
4022
4023 // give some extra time to make sure viewers did process seeds
4024 if(++NeedInitialData < 4) // needs fix if update rate changes on heartbeat
4021 return; 4025 return;
4022 NeedInitialData = false;
4023 } 4026 }
4024 4027
4028 NeedInitialData = -1;
4029
4025 bool selfappearance = (flags & 4) != 0; 4030 bool selfappearance = (flags & 4) != 0;
4026 4031
4027 Util.FireAndForget(delegate 4032 Util.FireAndForget(delegate
4028 { 4033 {
4034 m_log.DebugFormat("[SCENE PRESENCE({0})]: SendInitialData for {1}", Scene.RegionInfo.RegionName, UUID);
4029 if (m_teleportFlags <= 0) 4035 if (m_teleportFlags <= 0)
4030 { 4036 {
4031 Scene.SendLayerData(ControllingClient); 4037 Scene.SendLayerData(ControllingClient);
@@ -6778,7 +6784,7 @@ namespace OpenSim.Region.Framework.Scenes
6778 lock (m_completeMovementLock) 6784 lock (m_completeMovementLock)
6779 { 6785 {
6780 GodController.HasMovedAway(); 6786 GodController.HasMovedAway();
6781 NeedInitialData = false; 6787 NeedInitialData = -1;
6782 m_gotRegionHandShake = false; 6788 m_gotRegionHandShake = false;
6783 } 6789 }
6784 6790