diff options
author | Teravus Ovares (Dan Olivares) | 2009-09-09 16:20:19 -0400 |
---|---|---|
committer | Teravus Ovares (Dan Olivares) | 2009-09-09 16:20:19 -0400 |
commit | c605509da3a690d4050c48418111d7f29f7be9b4 (patch) | |
tree | e2e76c5e521577c9be9002530d289a4b346f2907 /OpenSim/Region/Framework | |
parent | Merge branch 'master' of ssh://MyConnection/var/git/opensim (diff) | |
download | opensim-SC_OLD-c605509da3a690d4050c48418111d7f29f7be9b4.zip opensim-SC_OLD-c605509da3a690d4050c48418111d7f29f7be9b4.tar.gz opensim-SC_OLD-c605509da3a690d4050c48418111d7f29f7be9b4.tar.bz2 opensim-SC_OLD-c605509da3a690d4050c48418111d7f29f7be9b4.tar.xz |
* Lock timers when Calling Start() and Stop() when the Thread Context is murky. This affects Mono only.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 |
2 files changed, 6 insertions, 2 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/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, |