From c605509da3a690d4050c48418111d7f29f7be9b4 Mon Sep 17 00:00:00 2001 From: Teravus Ovares (Dan Olivares) Date: Wed, 9 Sep 2009 16:20:19 -0400 Subject: * Lock timers when Calling Start() and Stop() when the Thread Context is murky. This affects Mono only. --- OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | 6 ++++-- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes') 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 bool permissionToDelete) { if (Enabled) - m_inventoryTicker.Stop(); + lock (m_inventoryTicker) + m_inventoryTicker.Stop(); lock (m_inventoryDeletes) { @@ -93,7 +94,8 @@ namespace OpenSim.Region.Framework.Scenes } if (Enabled) - m_inventoryTicker.Start(); + lock (m_inventoryTicker) + m_inventoryTicker.Start(); // Visually remove it, even if it isnt really gone yet. This means that if we crash before the object // has gone to inventory, it will reappear in the region again on restart instead of being lost. 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) { lPos = AbsolutePosition; } + // Causes this thread to dig into the Client Thread Data. + // Remember your locking here! remoteClient.SendPrimTerseUpdate(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, lPos, -- cgit v1.1 From 1c878ec42502e8af2dfe8f25e4d42655dc70712f Mon Sep 17 00:00:00 2001 From: Teravus Ovares (Dan Olivares) Date: Thu, 10 Sep 2009 03:25:55 -0400 Subject: * Fix an off by one error on visible neighbors in the 'RequestNeighbors' method. This off by one error showed one extra row of neighbors on the north and east side --- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes') 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 int startX = (int) pRegionLocX - 1; int startY = (int) pRegionLocY - 1; - int endX = (int) pRegionLocX + (int)extent.X + 1; - int endY = (int) pRegionLocY + (int)extent.Y + 1; + int endX = (int) pRegionLocX + (int)extent.X; + int endY = (int) pRegionLocY + (int)extent.Y; for (int i=startX;i