From 2fa1b1f9483add02cf16aa4207851b0a22ba9fcd Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 22 Dec 2021 15:22:29 +0000 Subject: [PATCH] a potencial lock issue --- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 5efbed969d..6e3d21b7aa 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -5981,16 +5981,16 @@ namespace OpenSim.Region.Framework.Scenes public void HandleForceReleaseControls(IClientAPI remoteClient, UUID agentID) { - foreach (ScriptControllers c in scriptedcontrols.Values) - { - SceneObjectGroup sog = m_scene.GetSceneObjectGroup(c.objectID); - if(sog != null && !sog.IsDeleted && sog.RootPart.PhysActor != null) - sog.RootPart.PhysActor.OnPhysicsRequestingCameraData -= physActor_OnPhysicsRequestingCameraData; - } - - IgnoredControls = ScriptControlled.CONTROL_ZERO; lock (scriptedcontrols) { + foreach (ScriptControllers c in scriptedcontrols.Values) + { + SceneObjectGroup sog = m_scene.GetSceneObjectGroup(c.objectID); + if(sog != null && !sog.IsDeleted && sog.RootPart.PhysActor != null) + sog.RootPart.PhysActor.OnPhysicsRequestingCameraData -= physActor_OnPhysicsRequestingCameraData; + } + + IgnoredControls = ScriptControlled.CONTROL_ZERO; scriptedcontrols.Clear(); } ControllingClient.SendTakeControls(int.MaxValue, false, false);