* refactor: Make SOG itself responsible for checking whether it's already been deleted on an update request from the regular sweep
parent
88cdd266ef
commit
03581c17e6
|
@ -141,9 +141,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
List<EntityBase> updateEntities = GetEntities();
|
List<EntityBase> updateEntities = GetEntities();
|
||||||
|
|
||||||
foreach (EntityBase entity in updateEntities)
|
foreach (EntityBase entity in updateEntities)
|
||||||
{
|
{
|
||||||
if (!entity.IsDeleted)
|
entity.Update();
|
||||||
entity.Update();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -327,15 +326,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
// Don't abort the whole update if one entity happens to give us an exception.
|
// Don't abort the whole update if one entity happens to give us an exception.
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Check that the group was not deleted before the scheduled update
|
m_updateList[i].Update();
|
||||||
// FIXME: This is merely a temporary measure to reduce the incidence of failure, when
|
|
||||||
// an object has been deleted from a scene before update was processed.
|
|
||||||
// A more fundamental overhaul of the update mechanism is required to eliminate all
|
|
||||||
// the race conditions.
|
|
||||||
if (!entity.IsDeleted)
|
|
||||||
{
|
|
||||||
m_updateList[i].Update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1478,6 +1478,13 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void Update()
|
public override void Update()
|
||||||
{
|
{
|
||||||
|
// Check that the group was not deleted before the scheduled update
|
||||||
|
// FIXME: This is merely a temporary measure to reduce the incidence of failure when
|
||||||
|
// an object has been deleted from a scene before update was processed.
|
||||||
|
// A more fundamental overhaul of the update mechanism is required to eliminate all
|
||||||
|
// the race conditions.
|
||||||
|
if (m_isDeleted)
|
||||||
|
return;
|
||||||
|
|
||||||
lock (m_parts)
|
lock (m_parts)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue