From 0e7c4046d3fde862c56b7b5255b48928fa2652e6 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 7 Apr 2008 17:28:02 +0000 Subject: * Nasty hack to reduce the incidence of spurious exceptions where a user deletes a newly rezzed object before the persistence thread gets to it from its queue. * This should greatly reduce but not eliminate the problem - elimination probably requires a redesign of the prim persistence processes --- OpenSim/Region/Environment/Scenes/InnerScene.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs') diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 9a720d9..ef98599 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs @@ -236,7 +236,15 @@ namespace OpenSim.Region.Environment.Scenes // Don't abort the whole update if one entity happens to give us an exception. try { - m_updateList[i].Update(); + // A null name signals that this group was 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 (entity.Name != null) + { + m_updateList[i].Update(); + } } catch (Exception e) { -- cgit v1.1