* 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 different0.6.0-stable
parent
641de2f404
commit
68d85497ad
|
@ -147,7 +147,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
CAPSULE_LENGTH = (size.Z - ((size.Z * height_fudge_factor)));
|
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);
|
AvatarGeomAndBodyCreation(pos.X, pos.Y, pos.Z, m_tensor);
|
||||||
}
|
}
|
||||||
|
@ -362,7 +362,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
get { return _position; }
|
get { return _position; }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
lock (OdeScene.OdeLock)
|
lock (_parent_scene.OdeLock)
|
||||||
{
|
{
|
||||||
d.BodySetPosition(Body, value.X, value.Y, value.Z);
|
d.BodySetPosition(Body, value.X, value.Y, value.Z);
|
||||||
_position = value;
|
_position = value;
|
||||||
|
@ -386,7 +386,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
m_pidControllerActive = true;
|
m_pidControllerActive = true;
|
||||||
lock (OdeScene.OdeLock)
|
lock (_parent_scene.OdeLock)
|
||||||
{
|
{
|
||||||
d.JointDestroy(Amotor);
|
d.JointDestroy(Amotor);
|
||||||
|
|
||||||
|
@ -863,7 +863,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Destroy()
|
public void Destroy()
|
||||||
{
|
{
|
||||||
lock (OdeScene.OdeLock)
|
lock (_parent_scene.OdeLock)
|
||||||
{
|
{
|
||||||
// Kill the Amotor
|
// Kill the Amotor
|
||||||
d.JointDestroy(Amotor);
|
d.JointDestroy(Amotor);
|
||||||
|
|
|
@ -990,7 +990,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
lock (OdeScene.OdeLock)
|
lock (_parent_scene.OdeLock)
|
||||||
{
|
{
|
||||||
CreateGeom(m_targetSpace, _mesh);
|
CreateGeom(m_targetSpace, _mesh);
|
||||||
|
|
||||||
|
|
|
@ -242,7 +242,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
// split static geometry collision handling into spaces of 30 meters
|
// split static geometry collision handling into spaces of 30 meters
|
||||||
public IntPtr[,] staticPrimspace;
|
public IntPtr[,] staticPrimspace;
|
||||||
|
|
||||||
public static Object OdeLock = new Object();
|
public Object OdeLock;
|
||||||
|
|
||||||
public IMesher mesher;
|
public IMesher mesher;
|
||||||
|
|
||||||
|
@ -259,6 +259,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public OdeScene(CollisionLocker dode)
|
public OdeScene(CollisionLocker dode)
|
||||||
{
|
{
|
||||||
|
OdeLock = new Object();
|
||||||
ode = dode;
|
ode = dode;
|
||||||
nearCallback = near;
|
nearCallback = near;
|
||||||
triCallback = TriCallback;
|
triCallback = TriCallback;
|
||||||
|
|
Loading…
Reference in New Issue