From c92696286215ca8260fa80472e2678d0482553b7 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Tue, 12 Feb 2008 00:01:55 +0000 Subject: * This resolves the null exceptions when a script is manipulating a physical object in ODE and you delete the object. The script is still running and trying to add force, but the object reference is null. --- OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 2 ++ OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Physics/OdePlugin') diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index adb53d2..12d7694 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs @@ -429,6 +429,7 @@ namespace OpenSim.Region.Physics.OdePlugin public void ProcessTaints(float timestep) { + System.Threading.Thread.Sleep(5); if (m_taintposition != _position) Move(timestep); @@ -712,6 +713,7 @@ namespace OpenSim.Region.Physics.OdePlugin public void changeAddForce(float timestamp) { + System.Threading.Thread.Sleep(2); lock (m_forcelist) { //m_log.Info("[PHYSICS]: dequeing forcelist"); diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index e58984b..f1d8232 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs @@ -639,6 +639,7 @@ namespace OpenSim.Region.Physics.OdePlugin { lock (OdeLock) { + System.Threading.Thread.Sleep(20); if (prim.IsPhysical) { prim.disableBody(); @@ -733,7 +734,7 @@ namespace OpenSim.Region.Physics.OdePlugin // never be called if the prim is physical(active) // All physical prim end up in the root space - + System.Threading.Thread.Sleep(20); if (currentspace != space) { if (d.SpaceQuery(currentspace, geom) && currentspace != (IntPtr) 0) -- cgit v1.1