diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 302103ae78..ff05e95a42 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -509,12 +509,6 @@ namespace OpenSim.Region.Framework.Scenes } } - // This gets locked so things stay thread safe. - public object SyncRoot - { - get { return m_sceneGraph.m_syncRoot; } - } - public string DefaultScriptEngine { get { return m_defaultScriptEngine; } diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 542bd51274..1af18e7309 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -84,8 +84,6 @@ namespace OpenSim.Region.Framework.Scenes protected int m_activeScripts = 0; protected int m_scriptLPS = 0; - protected internal object m_syncRoot = new object(); - protected internal PhysicsScene _PhyScene; /// @@ -187,26 +185,22 @@ namespace OpenSim.Region.Framework.Scenes /// protected internal float UpdatePhysics(double elapsed) { - lock (m_syncRoot) - { - // Here is where the Scene calls the PhysicsScene. This is a one-way - // interaction; the PhysicsScene cannot access the calling Scene directly. - // But with joints, we want a PhysicsActor to be able to influence a - // non-physics SceneObjectPart. In particular, a PhysicsActor that is connected - // with a joint should be able to move the SceneObjectPart which is the visual - // representation of that joint (for editing and serialization purposes). - // However the PhysicsActor normally cannot directly influence anything outside - // of the PhysicsScene, and the non-physical SceneObjectPart which represents - // the joint in the Scene does not exist in the PhysicsScene. - // - // To solve this, we have an event in the PhysicsScene that is fired when a joint - // has changed position (because one of its associated PhysicsActors has changed - // position). - // - // Therefore, JointMoved and JointDeactivated events will be fired as a result of the following Simulate(). - - return _PhyScene.Simulate((float)elapsed); - } + // Here is where the Scene calls the PhysicsScene. This is a one-way + // interaction; the PhysicsScene cannot access the calling Scene directly. + // But with joints, we want a PhysicsActor to be able to influence a + // non-physics SceneObjectPart. In particular, a PhysicsActor that is connected + // with a joint should be able to move the SceneObjectPart which is the visual + // representation of that joint (for editing and serialization purposes). + // However the PhysicsActor normally cannot directly influence anything outside + // of the PhysicsScene, and the non-physical SceneObjectPart which represents + // the joint in the Scene does not exist in the PhysicsScene. + // + // To solve this, we have an event in the PhysicsScene that is fired when a joint + // has changed position (because one of its associated PhysicsActors has changed + // position). + // + // Therefore, JointMoved and JointDeactivated events will be fired as a result of the following Simulate(). + return _PhyScene.Simulate((float)elapsed); } protected internal void UpdateScenePresenceMovement() diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 0880e21724..bb820aa733 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -521,8 +521,7 @@ namespace OpenSim.Region.Framework.Scenes { try { - lock (m_scene.SyncRoot) - PhysicsActor.Position = value; + PhysicsActor.Position = value; } catch (Exception e) { @@ -572,8 +571,7 @@ namespace OpenSim.Region.Framework.Scenes { try { - lock (m_scene.SyncRoot) - PhysicsActor.Velocity = value; + PhysicsActor.Velocity = value; } catch (Exception e) {