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

0.7.6-extended
Justin Clark-Casey (justincc) 2014-01-16 23:31:50 +00:00
parent bf86addf3d
commit d88c9756a7
1 changed files with 3 additions and 1 deletions

View File

@ -932,10 +932,12 @@ namespace OpenSim.Region.Framework.Scenes
//m_log.DebugFormat("[SCENE]: known regions in {0}: {1}", Scene.RegionInfo.RegionName, KnownChildRegionHandles.Count); //m_log.DebugFormat("[SCENE]: known regions in {0}: {1}", Scene.RegionInfo.RegionName, KnownChildRegionHandles.Count);
lock (m_completeMovementLock) lock (m_completeMovementLock)
{
if (!IsChildAgent) if (!IsChildAgent)
return false; 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 // 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. // set and prevent the close of the connection on a subsequent re-teleport.