* Lock timers when Calling Start() and Stop() when the Thread Context is murky. This affects Mono only.

This commit is contained in:
Teravus Ovares (Dan Olivares)
2009-09-09 16:20:19 -04:00
parent f0e2fd426b
commit c605509da3
8 changed files with 85 additions and 30 deletions

View File

@@ -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.

View File

@@ -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,