diff options
Diffstat (limited to '')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs index 6586099..582ba5b 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs | |||
@@ -106,13 +106,21 @@ public sealed class BSLinksetCompound : BSLinkset | |||
106 | // When rebuilding, it is possible to set properties that would normally require a rebuild. | 106 | // When rebuilding, it is possible to set properties that would normally require a rebuild. |
107 | // If already rebuilding, don't request another rebuild. | 107 | // If already rebuilding, don't request another rebuild. |
108 | // If a linkset with just a root prim (simple non-linked prim) don't bother rebuilding. | 108 | // If a linkset with just a root prim (simple non-linked prim) don't bother rebuilding. |
109 | if (!Rebuilding && HasAnyChildren) | 109 | lock (this) |
110 | { | 110 | { |
111 | m_physicsScene.PostTaintObject("BSLinksetCompound.ScheduleRebuild", LinksetRoot.LocalID, delegate() | 111 | if (!RebuildScheduled) |
112 | { | 112 | { |
113 | if (HasAnyChildren) | 113 | if (!Rebuilding && HasAnyChildren) |
114 | RecomputeLinksetCompound(); | 114 | { |
115 | }); | 115 | RebuildScheduled = true; |
116 | m_physicsScene.PostTaintObject("BSLinksetCompound.ScheduleRebuild", LinksetRoot.LocalID, delegate() | ||
117 | { | ||
118 | if (HasAnyChildren) | ||
119 | RecomputeLinksetCompound(); | ||
120 | RebuildScheduled = false; | ||
121 | }); | ||
122 | } | ||
123 | } | ||
116 | } | 124 | } |
117 | } | 125 | } |
118 | 126 | ||