diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 42481ff..eacd219 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -126,7 +126,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
126 | } | 126 | } |
127 | else | 127 | else |
128 | { | 128 | { |
129 | m_partsLock.ExitReadLock(); | 129 | if (m_partsLock.RecursiveReadCount > 0) |
130 | { | ||
131 | m_partsLock.ExitReadLock(); | ||
132 | } | ||
130 | } | 133 | } |
131 | } | 134 | } |
132 | public void lockPartsForWrite(bool locked) | 135 | public void lockPartsForWrite(bool locked) |
@@ -155,7 +158,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
155 | } | 158 | } |
156 | else | 159 | else |
157 | { | 160 | { |
158 | m_partsLock.ExitWriteLock(); | 161 | if (m_partsLock.RecursiveWriteCount > 0) |
162 | { | ||
163 | m_partsLock.ExitWriteLock(); | ||
164 | } | ||
159 | } | 165 | } |
160 | } | 166 | } |
161 | 167 | ||
@@ -2292,14 +2298,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
2292 | public void LinkToGroup(SceneObjectGroup objectGroup) | 2298 | public void LinkToGroup(SceneObjectGroup objectGroup) |
2293 | { | 2299 | { |
2294 | // Make sure we have sent any pending unlinks or stuff. | 2300 | // Make sure we have sent any pending unlinks or stuff. |
2295 | if (objectGroup.RootPart.UpdateFlag > 0) | 2301 | //if (objectGroup.RootPart.UpdateFlag > 0) |
2296 | { | 2302 | //{ |
2297 | m_log.WarnFormat( | 2303 | // m_log.WarnFormat( |
2298 | "[SCENE OBJECT GROUP]: Forcing send of linkset {0}, {1} to {2}, {3} as its still waiting.", | 2304 | // "[SCENE OBJECT GROUP]: Forcing send of linkset {0}, {1} to {2}, {3} as its still waiting.", |
2299 | objectGroup.RootPart.Name, objectGroup.RootPart.UUID, RootPart.Name, RootPart.UUID); | 2305 | // objectGroup.RootPart.Name, objectGroup.RootPart.UUID, RootPart.Name, RootPart.UUID); |
2300 | 2306 | ||
2301 | objectGroup.RootPart.SendScheduledUpdates(); | 2307 | // objectGroup.RootPart.SendScheduledUpdates(); |
2302 | } | 2308 | //} |
2303 | 2309 | ||
2304 | // m_log.DebugFormat( | 2310 | // m_log.DebugFormat( |
2305 | // "[SCENE OBJECT GROUP]: Linking group with root part {0}, {1} to group with root part {2}, {3}", | 2311 | // "[SCENE OBJECT GROUP]: Linking group with root part {0}, {1} to group with root part {2}, {3}", |
@@ -2389,8 +2395,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2389 | // unmoved prims! | 2395 | // unmoved prims! |
2390 | ResetChildPrimPhysicsPositions(); | 2396 | ResetChildPrimPhysicsPositions(); |
2391 | 2397 | ||
2392 | HasGroupChanged = true; | 2398 | //HasGroupChanged = true; |
2393 | ScheduleGroupForFullUpdate(); | 2399 | //ScheduleGroupForFullUpdate(); |
2394 | } | 2400 | } |
2395 | 2401 | ||
2396 | /// <summary> | 2402 | /// <summary> |
@@ -2483,8 +2489,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2483 | 2489 | ||
2484 | linkPart.Rezzed = RootPart.Rezzed; | 2490 | linkPart.Rezzed = RootPart.Rezzed; |
2485 | 2491 | ||
2486 | HasGroupChanged = true; | 2492 | //HasGroupChanged = true; |
2487 | ScheduleGroupForFullUpdate(); | 2493 | //ScheduleGroupForFullUpdate(); |
2488 | } | 2494 | } |
2489 | 2495 | ||
2490 | /// <summary> | 2496 | /// <summary> |
@@ -2776,8 +2782,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
2776 | { | 2782 | { |
2777 | if (part.Scale.X > 10.0 || part.Scale.Y > 10.0 || part.Scale.Z > 10.0) | 2783 | if (part.Scale.X > 10.0 || part.Scale.Y > 10.0 || part.Scale.Z > 10.0) |
2778 | { | 2784 | { |
2779 | UsePhysics = false; // Reset physics | 2785 | if (part.Scale.X > m_scene.RegionInfo.PhysPrimMax || |
2780 | break; | 2786 | part.Scale.Y > m_scene.RegionInfo.PhysPrimMax || |
2787 | part.Scale.Z > m_scene.RegionInfo.PhysPrimMax) | ||
2788 | { | ||
2789 | UsePhysics = false; // Reset physics | ||
2790 | break; | ||
2791 | } | ||
2781 | } | 2792 | } |
2782 | } | 2793 | } |
2783 | 2794 | ||