* 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) private void changevelocity(float timestep)
{ {
while (ode.lockquery()) lock (ode)
{ {
} while (ode.lockquery())
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.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(); //resetCollisionAccounting();
m_taintVelocity = PhysicsVector.Zero; m_taintVelocity = PhysicsVector.Zero;
} }