a potencial lock issue

This commit is contained in:
UbitUmarov
2021-12-22 15:22:29 +00:00
parent 021756895e
commit 2fa1b1f948

View File

@@ -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);