aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-04-07 17:28:02 +0000
committerJustin Clarke Casey2008-04-07 17:28:02 +0000
commit0e7c4046d3fde862c56b7b5255b48928fa2652e6 (patch)
tree5f41ba1ddaf33ebf9d7aea50cc94aa13c0db7d3b /OpenSim/Region/Environment/Scenes/Scene.cs
parent* Minor: log message correction (diff)
downloadopensim-SC-0e7c4046d3fde862c56b7b5255b48928fa2652e6.zip
opensim-SC-0e7c4046d3fde862c56b7b5255b48928fa2652e6.tar.gz
opensim-SC-0e7c4046d3fde862c56b7b5255b48928fa2652e6.tar.bz2
opensim-SC-0e7c4046d3fde862c56b7b5255b48928fa2652e6.tar.xz
* 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
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 101bac3..8f4c332 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -2676,7 +2676,7 @@ namespace OpenSim.Region.Environment.Scenes
2676 /// </summary> 2676 /// </summary>
2677 /// <param name="group"></param> 2677 /// <param name="group"></param>
2678 public void DeleteSceneObjectGroup(SceneObjectGroup group) 2678 public void DeleteSceneObjectGroup(SceneObjectGroup group)
2679 { 2679 {
2680 SceneObjectPart rootPart = (group).GetChildPart(group.UUID); 2680 SceneObjectPart rootPart = (group).GetChildPart(group.UUID);
2681 if (rootPart.PhysActor != null) 2681 if (rootPart.PhysActor != null)
2682 { 2682 {
@@ -2693,6 +2693,14 @@ namespace OpenSim.Region.Environment.Scenes
2693 m_innerScene.RemoveAPrimCount(); 2693 m_innerScene.RemoveAPrimCount();
2694 } 2694 }
2695 group.DeleteParts(); 2695 group.DeleteParts();
2696
2697 // In case anybody else retains a reference to this group, signal deletion by changing the name
2698 // to null. We can't zero out the UUID because this is taken from the root part, which has already
2699 // been removed.
2700 // FIXME: This is a really poor temporary solution, since it still leaves plenty of scope for race
2701 // conditions where a user deletes an entity while it is being stored. Really, the update
2702 // code needs a redesign.
2703 group.Name = null;
2696 } 2704 }
2697 2705
2698 /// <summary> 2706 /// <summary>