diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 8c56975..6020a9e 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3876,9 +3876,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3876 | 3876 | ||
3877 | private void CopyFrom(AgentData cAgent) | 3877 | private void CopyFrom(AgentData cAgent) |
3878 | { | 3878 | { |
3879 | lock (m_originRegionIDAccessLock) | ||
3880 | m_originRegionID = cAgent.RegionID; | ||
3881 | |||
3882 | m_callbackURI = cAgent.CallbackURI; | 3879 | m_callbackURI = cAgent.CallbackURI; |
3883 | // m_log.DebugFormat( | 3880 | // m_log.DebugFormat( |
3884 | // "[SCENE PRESENCE]: Set callback for {0} in {1} to {2} in CopyFrom()", | 3881 | // "[SCENE PRESENCE]: Set callback for {0} in {1} to {2} in CopyFrom()", |
@@ -3951,6 +3948,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
3951 | 3948 | ||
3952 | if (Scene.AttachmentsModule != null) | 3949 | if (Scene.AttachmentsModule != null) |
3953 | Scene.AttachmentsModule.CopyAttachments(cAgent, this); | 3950 | Scene.AttachmentsModule.CopyAttachments(cAgent, this); |
3951 | |||
3952 | // This must occur after attachments are copied, as it releases the CompleteMovement() calling thread | ||
3953 | // originating from the client completing a teleport. Otherwise, CompleteMovement() code to restart | ||
3954 | // script attachments can outrace this thread. | ||
3955 | lock (m_originRegionIDAccessLock) | ||
3956 | m_originRegionID = cAgent.RegionID; | ||
3954 | } | 3957 | } |
3955 | 3958 | ||
3956 | public bool CopyAgent(out IAgentData agent) | 3959 | public bool CopyAgent(out IAgentData agent) |