From b290ce405f01ae4b52ba5d5ec1661a2ae44ba2d6 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sat, 21 Jun 2008 19:56:19 +0000 Subject: * Remove a bug I created in r5171 where taking an object would terminate the client session * change code to use an explicit state variable instead of using SOG.Name = null to signal deletion --- OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs') diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 0d759cf..814db05 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -124,7 +124,7 @@ namespace OpenSim.Region.Environment.Scenes { get { return RootPart.Name; } set { RootPart.Name = value; } - } + } /// /// Added because the Parcel code seems to use it @@ -921,10 +921,16 @@ namespace OpenSim.Region.Environment.Scenes } /// - /// Completely delete this group and tell all the scene presences about that deletion. + /// Delete this group from its scene and tell all the scene presences about that deletion. /// public void DeleteGroup() { + // We need to keep track of this state in case this group is still queued for backup. + // FIXME: This is a poor temporary solution, since it still leaves plenty of scope for race + // conditions where a user deletes an entity while it is being stored. Really, the update + // code needs a redesign. + m_isDeleted = true; + DetachFromBackup(this); lock (m_parts) @@ -944,6 +950,7 @@ namespace OpenSim.Region.Environment.Scenes } } } + public void FakeDeleteGroup() { foreach (SceneObjectPart part in m_parts.Values) -- cgit v1.1