Lock the object queue when dequeueing
parent
5270e54268
commit
9c3c020697
|
@ -66,6 +66,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
|
||||
public void SendPrimUpdates()
|
||||
{
|
||||
lock(m_pendingObjects)
|
||||
{
|
||||
if (m_pendingObjects == null)
|
||||
{
|
||||
|
@ -75,7 +77,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
foreach (EntityBase e in m_presence.Scene.Entities)
|
||||
{
|
||||
if (e is SceneObjectGroup)
|
||||
if (e != null && e is SceneObjectGroup)
|
||||
m_pendingObjects.Enqueue((SceneObjectGroup)e);
|
||||
}
|
||||
}
|
||||
|
@ -117,9 +119,9 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if ((update.LastFullUpdateTime < part.TimeStampFull) ||
|
||||
part.IsAttachment)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Fully updating prim {0}, {1} - part timestamp {2}",
|
||||
// part.Name, part.UUID, part.TimeStampFull);
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Fully updating prim {0}, {1} - part timestamp {2}",
|
||||
// part.Name, part.UUID, part.TimeStampFull);
|
||||
|
||||
part.SendFullUpdate(m_presence.ControllingClient,
|
||||
m_presence.GenerateClientFlags(part.UUID));
|
||||
|
@ -136,9 +138,9 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
else if (update.LastTerseUpdateTime <= part.TimeStampTerse)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Tersely updating prim {0}, {1} - part timestamp {2}",
|
||||
// part.Name, part.UUID, part.TimeStampTerse);
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Tersely updating prim {0}, {1} - part timestamp {2}",
|
||||
// part.Name, part.UUID, part.TimeStampTerse);
|
||||
|
||||
part.SendTerseUpdateToClient(m_presence.ControllingClient);
|
||||
|
||||
|
@ -169,6 +171,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue