* Last bit of cleanup now. As long as you keep physical prim off, you should have a reasonably stable experience with ODE again.

* Physical prim at the simulator edge still seems to have the occasional issue.
ThreadPoolClientBranch
Teravus Ovares 2008-02-17 20:40:21 +00:00
parent f80a534eb0
commit c2d7beb617
1 changed files with 14 additions and 12 deletions

View File

@ -1073,22 +1073,24 @@ namespace OpenSim.Region.Physics.OdePlugin
}
private void changevelocity(float timestep)
{
while (ode.lockquery())
lock (ode)
{
}
ode.dlock(_parent_scene.world);
System.Threading.Thread.Sleep(20);
if (IsPhysical)
{
if (Body != (IntPtr)0)
while (ode.lockquery())
{
d.BodySetLinearVel(Body, m_taintVelocity.X, m_taintVelocity.Y, m_taintVelocity.Z);
}
ode.dlock(_parent_scene.world);
System.Threading.Thread.Sleep(20);
if (IsPhysical)
{
if (Body != (IntPtr)0)
{
d.BodySetLinearVel(Body, m_taintVelocity.X, m_taintVelocity.Y, m_taintVelocity.Z);
}
}
ode.dunlock(_parent_scene.world);
}
ode.dunlock(_parent_scene.world);
//resetCollisionAccounting();
m_taintVelocity = PhysicsVector.Zero;
}