diff options
author | Robert Adams | 2012-10-29 14:30:16 -0700 |
---|---|---|
committer | Robert Adams | 2012-11-03 21:14:25 -0700 |
commit | dae038a117c3110970d6fe0b743e20f342df2269 (patch) | |
tree | 035a35340a066b8b9f23a78399effd776332b809 /OpenSim/Region | |
parent | BulletSim: add definitions for linkset collision mask (diff) | |
download | opensim-SC-dae038a117c3110970d6fe0b743e20f342df2269.zip opensim-SC-dae038a117c3110970d6fe0b743e20f342df2269.tar.gz opensim-SC-dae038a117c3110970d6fe0b743e20f342df2269.tar.bz2 opensim-SC-dae038a117c3110970d6fe0b743e20f342df2269.tar.xz |
BulletSim: fix problem with multiple linksets stepping on each other if they are built at the same time.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs index cb52937..c27b5f0 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |||
@@ -578,12 +578,12 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters | |||
578 | } | 578 | } |
579 | } | 579 | } |
580 | 580 | ||
581 | ProcessPostStepTaints(); | ||
582 | |||
581 | // This causes the unmanaged code to output ALL the values found in ALL the objects in the world. | 583 | // This causes the unmanaged code to output ALL the values found in ALL the objects in the world. |
582 | // Only enable this in a limited test world with few objects. | 584 | // Only enable this in a limited test world with few objects. |
583 | // BulletSimAPI.DumpAllInfo2(World.ptr); // DEBUG DEBUG DEBUG | 585 | // BulletSimAPI.DumpAllInfo2(World.ptr); // DEBUG DEBUG DEBUG |
584 | 586 | ||
585 | ProcessPostStepTaints(); | ||
586 | |||
587 | // The physics engine returns the number of milliseconds it simulated this call. | 587 | // The physics engine returns the number of milliseconds it simulated this call. |
588 | // These are summed and normalized to one second and divided by 1000 to give the reported physics FPS. | 588 | // These are summed and normalized to one second and divided by 1000 to give the reported physics FPS. |
589 | // We multiply by 55 to give a recognizable running rate (55 or less). | 589 | // We multiply by 55 to give a recognizable running rate (55 or less). |
@@ -766,9 +766,10 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters | |||
766 | { | 766 | { |
767 | if (!m_initialized) return; | 767 | if (!m_initialized) return; |
768 | 768 | ||
769 | string uniqueIdent = ident + "-" + ID.ToString(); | ||
769 | lock (_taintLock) | 770 | lock (_taintLock) |
770 | { | 771 | { |
771 | _postTaintOperations[ident] = new TaintCallbackEntry(ident + "-" + ID.ToString(), callback); | 772 | _postTaintOperations[uniqueIdent] = new TaintCallbackEntry(uniqueIdent, callback); |
772 | } | 773 | } |
773 | 774 | ||
774 | return; | 775 | return; |