diff options
author | Teravus Ovares | 2008-02-12 00:01:55 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-02-12 00:01:55 +0000 |
commit | c92696286215ca8260fa80472e2678d0482553b7 (patch) | |
tree | 22dd421b8e2144922b91b69ff3cfa9ef923f7592 /OpenSim/Region/Physics/OdePlugin | |
parent | * Added PhysicsScene.Dispose() (diff) | |
download | opensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.zip opensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.tar.gz opensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.tar.bz2 opensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.tar.xz |
* 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.
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 3 |
2 files changed, 4 insertions, 1 deletions
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 | |||
429 | 429 | ||
430 | public void ProcessTaints(float timestep) | 430 | public void ProcessTaints(float timestep) |
431 | { | 431 | { |
432 | System.Threading.Thread.Sleep(5); | ||
432 | if (m_taintposition != _position) | 433 | if (m_taintposition != _position) |
433 | Move(timestep); | 434 | Move(timestep); |
434 | 435 | ||
@@ -712,6 +713,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
712 | 713 | ||
713 | public void changeAddForce(float timestamp) | 714 | public void changeAddForce(float timestamp) |
714 | { | 715 | { |
716 | System.Threading.Thread.Sleep(2); | ||
715 | lock (m_forcelist) | 717 | lock (m_forcelist) |
716 | { | 718 | { |
717 | //m_log.Info("[PHYSICS]: dequeing forcelist"); | 719 | //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 | |||
639 | { | 639 | { |
640 | lock (OdeLock) | 640 | lock (OdeLock) |
641 | { | 641 | { |
642 | System.Threading.Thread.Sleep(20); | ||
642 | if (prim.IsPhysical) | 643 | if (prim.IsPhysical) |
643 | { | 644 | { |
644 | prim.disableBody(); | 645 | prim.disableBody(); |
@@ -733,7 +734,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
733 | // never be called if the prim is physical(active) | 734 | // never be called if the prim is physical(active) |
734 | 735 | ||
735 | // All physical prim end up in the root space | 736 | // All physical prim end up in the root space |
736 | 737 | System.Threading.Thread.Sleep(20); | |
737 | if (currentspace != space) | 738 | if (currentspace != space) |
738 | { | 739 | { |
739 | if (d.SpaceQuery(currentspace, geom) && currentspace != (IntPtr) 0) | 740 | if (d.SpaceQuery(currentspace, geom) && currentspace != (IntPtr) 0) |