diff options
Diffstat (limited to '')
3 files changed, 8 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs index f8208ec..7ac1e7e 100644 --- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | |||
@@ -78,7 +78,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
78 | bool permissionToDelete) | 78 | bool permissionToDelete) |
79 | { | 79 | { |
80 | if (Enabled) | 80 | if (Enabled) |
81 | m_inventoryTicker.Stop(); | 81 | lock (m_inventoryTicker) |
82 | m_inventoryTicker.Stop(); | ||
82 | 83 | ||
83 | lock (m_inventoryDeletes) | 84 | lock (m_inventoryDeletes) |
84 | { | 85 | { |
@@ -93,7 +94,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
93 | } | 94 | } |
94 | 95 | ||
95 | if (Enabled) | 96 | if (Enabled) |
96 | m_inventoryTicker.Start(); | 97 | lock (m_inventoryTicker) |
98 | m_inventoryTicker.Start(); | ||
97 | 99 | ||
98 | // Visually remove it, even if it isnt really gone yet. This means that if we crash before the object | 100 | // Visually remove it, even if it isnt really gone yet. This means that if we crash before the object |
99 | // has gone to inventory, it will reappear in the region again on restart instead of being lost. | 101 | // has gone to inventory, it will reappear in the region again on restart instead of being lost. |
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 0827672..1c71a99 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |||
@@ -443,8 +443,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
443 | int startX = (int) pRegionLocX - 1; | 443 | int startX = (int) pRegionLocX - 1; |
444 | int startY = (int) pRegionLocY - 1; | 444 | int startY = (int) pRegionLocY - 1; |
445 | 445 | ||
446 | int endX = (int) pRegionLocX + (int)extent.X + 1; | 446 | int endX = (int) pRegionLocX + (int)extent.X; |
447 | int endY = (int) pRegionLocY + (int)extent.Y + 1; | 447 | int endY = (int) pRegionLocY + (int)extent.Y; |
448 | 448 | ||
449 | for (int i=startX;i<endX;i++) | 449 | for (int i=startX;i<endX;i++) |
450 | { | 450 | { |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 40e7471..b0d279c 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -3762,6 +3762,8 @@ if (m_shape != null) { | |||
3762 | lPos = AbsolutePosition; | 3762 | lPos = AbsolutePosition; |
3763 | } | 3763 | } |
3764 | 3764 | ||
3765 | // Causes this thread to dig into the Client Thread Data. | ||
3766 | // Remember your locking here! | ||
3765 | remoteClient.SendPrimTerseUpdate(m_regionHandle, | 3767 | remoteClient.SendPrimTerseUpdate(m_regionHandle, |
3766 | (ushort)(m_parentGroup.GetTimeDilation() * | 3768 | (ushort)(m_parentGroup.GetTimeDilation() * |
3767 | (float)ushort.MaxValue), LocalId, lPos, | 3769 | (float)ushort.MaxValue), LocalId, lPos, |