From dae038a117c3110970d6fe0b743e20f342df2269 Mon Sep 17 00:00:00 2001
From: Robert Adams
Date: Mon, 29 Oct 2012 14:30:16 -0700
Subject: BulletSim: fix problem with multiple linksets stepping on each other
 if they are built at the same time.

---
 OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

(limited to 'OpenSim')

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
             }
         }
 
+        ProcessPostStepTaints();
+
         // This causes the unmanaged code to output ALL the values found in ALL the objects in the world.
         // Only enable this in a limited test world with few objects.
         // BulletSimAPI.DumpAllInfo2(World.ptr);    // DEBUG DEBUG DEBUG
 
-        ProcessPostStepTaints();
-
         // The physics engine returns the number of milliseconds it simulated this call.
         // These are summed and normalized to one second and divided by 1000 to give the reported physics FPS.
         // We multiply by 55 to give a recognizable running rate (55 or less).
@@ -766,9 +766,10 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
     {
         if (!m_initialized) return;
 
+        string uniqueIdent = ident + "-" + ID.ToString();
         lock (_taintLock)
         {
-            _postTaintOperations[ident] = new TaintCallbackEntry(ident + "-" + ID.ToString(), callback);
+            _postTaintOperations[uniqueIdent] = new TaintCallbackEntry(uniqueIdent, callback);
         }
 
         return;
-- 
cgit v1.1