* Fixed the Ghost physical hull on deleting a physical Prim
* Fixed a deadlock when there is an exception in the collision and stepping parts of Simulate.ThreadPoolClientBranch
parent
19e0ada93a
commit
e33a0c5fc0
|
@ -755,8 +755,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
prim.disableBody();
|
||||
}
|
||||
// we don't want to remove the main space
|
||||
if (prim.m_targetSpace != space && prim.IsPhysical == false)
|
||||
{
|
||||
|
||||
// If the geometry is in the targetspace, remove it from the target space
|
||||
//m_log.Warn(prim.m_targetSpace);
|
||||
|
||||
|
@ -788,6 +787,10 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
d.GeomDestroy(prim.prim_geom);
|
||||
prim.prim_geom = (IntPtr)0;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.Warn("[PHYSICS]: Unable to remove prim from physics scene");
|
||||
}
|
||||
|
||||
}
|
||||
catch (System.AccessViolationException)
|
||||
|
@ -822,7 +825,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
|
||||
|
||||
ode.dunlock(world);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
|
@ -1261,6 +1264,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
if (!ode.lockquery())
|
||||
{
|
||||
ode.dlock(world);
|
||||
try
|
||||
{
|
||||
foreach (OdeCharacter actor in _characters)
|
||||
{
|
||||
actor.Move(timeStep);
|
||||
|
@ -1274,6 +1279,15 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
|
||||
d.JointGroupEmpty(contactgroup);
|
||||
ode.dunlock(world);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.Error("[PHYSICS]: " + e.Message.ToString() + e.TargetSite.ToString());
|
||||
ode.dunlock(world);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
step_time -= ODE_STEPSIZE;
|
||||
i++;
|
||||
|
|
Loading…
Reference in New Issue