* Releases the inter-region thread synchronization between physics in ODE on the same instance.

* If you are hosting many regions on a single instance, you will probably notice a decrease in region startup time and maybe a slight increase in performance.
* Single regions won't notice anything different
0.6.0-stable
Teravus Ovares 2008-10-16 12:57:29 +00:00
parent 641de2f404
commit 68d85497ad
3 changed files with 7 additions and 6 deletions

View File

@ -147,7 +147,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
CAPSULE_LENGTH = (size.Z - ((size.Z * height_fudge_factor)));
lock (OdeScene.OdeLock)
lock (_parent_scene.OdeLock)
{
AvatarGeomAndBodyCreation(pos.X, pos.Y, pos.Z, m_tensor);
}
@ -362,7 +362,7 @@ namespace OpenSim.Region.Physics.OdePlugin
get { return _position; }
set
{
lock (OdeScene.OdeLock)
lock (_parent_scene.OdeLock)
{
d.BodySetPosition(Body, value.X, value.Y, value.Z);
_position = value;
@ -386,7 +386,7 @@ namespace OpenSim.Region.Physics.OdePlugin
set
{
m_pidControllerActive = true;
lock (OdeScene.OdeLock)
lock (_parent_scene.OdeLock)
{
d.JointDestroy(Amotor);
@ -863,7 +863,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// </summary>
public void Destroy()
{
lock (OdeScene.OdeLock)
lock (_parent_scene.OdeLock)
{
// Kill the Amotor
d.JointDestroy(Amotor);

View File

@ -990,7 +990,7 @@ namespace OpenSim.Region.Physics.OdePlugin
}
lock (OdeScene.OdeLock)
lock (_parent_scene.OdeLock)
{
CreateGeom(m_targetSpace, _mesh);

View File

@ -242,7 +242,7 @@ namespace OpenSim.Region.Physics.OdePlugin
// split static geometry collision handling into spaces of 30 meters
public IntPtr[,] staticPrimspace;
public static Object OdeLock = new Object();
public Object OdeLock;
public IMesher mesher;
@ -259,6 +259,7 @@ namespace OpenSim.Region.Physics.OdePlugin
/// </summary>
public OdeScene(CollisionLocker dode)
{
OdeLock = new Object();
ode = dode;
nearCallback = near;
triCallback = TriCallback;