Pārlūkot izejas kodu

Actually put IsChildAgent = true inside the lock, otherwise there is still a small window for race conditions on duplicate CompleteMovement calls

Justin Clark-Casey (justincc) 10 gadi atpakaļ
vecāks
revīzija
3bc669ffc7
1 mainītis faili ar 3 papildinājumiem un 1 dzēšanām
  1. 3 1
      OpenSim/Region/Framework/Scenes/ScenePresence.cs

+ 3 - 1
OpenSim/Region/Framework/Scenes/ScenePresence.cs

@@ -933,10 +933,12 @@ namespace OpenSim.Region.Framework.Scenes
             //m_log.DebugFormat("[SCENE]: known regions in {0}: {1}", Scene.RegionInfo.RegionName, KnownChildRegionHandles.Count);
 
             lock (m_completeMovementLock)
+            {
                 if (!IsChildAgent)
                     return false;
 
-            IsChildAgent = false;
+                IsChildAgent = false;
+            }
 
             // Must reset this here so that a teleport to a region next to an existing region does not keep the flag
             // set and prevent the close of the connection on a subsequent re-teleport.