aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Interfaces
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-06-25 22:48:13 +0100
committerJustin Clark-Casey (justincc)2012-06-25 22:48:13 +0100
commite5b739aaebace6b028f3f6bf05d21ff7a7c5affe (patch)
treef76c578681da34fddb0c36eeada8af57eaf0bbc4 /OpenSim/Region/Framework/Interfaces
parentIn AttachmentsModule.DetachSingleAttachmentToInvInternal(), remove attachment... (diff)
downloadopensim-SC_OLD-e5b739aaebace6b028f3f6bf05d21ff7a7c5affe.zip
opensim-SC_OLD-e5b739aaebace6b028f3f6bf05d21ff7a7c5affe.tar.gz
opensim-SC_OLD-e5b739aaebace6b028f3f6bf05d21ff7a7c5affe.tar.bz2
opensim-SC_OLD-e5b739aaebace6b028f3f6bf05d21ff7a7c5affe.tar.xz
When attachments are being saved and deleted for a closing root agent, delete first to avoid a hud race condition with update threads.
If delete doesn't occur first then the update thread can outrace the IsAttachment = false necessary to save attachments and send hud artifacts to other viewers.
Diffstat (limited to 'OpenSim/Region/Framework/Interfaces')
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
index eb07165..fde5de1 100644
--- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
@@ -43,10 +43,15 @@ namespace OpenSim.Region.Framework.Interfaces
43 void RezAttachments(IScenePresence sp); 43 void RezAttachments(IScenePresence sp);
44 44
45 /// <summary> 45 /// <summary>
46 /// Save the attachments that have change on this presence. 46 /// Derez the attachements for a scene presence that is closing.
47 /// </summary> 47 /// </summary>
48 /// <param name="sp"></param> 48 /// <remarks>
49 void SaveChangedAttachments(IScenePresence sp, bool saveAllScripted); 49 /// Attachment changes are saved.
50 /// </remarks>
51 /// <param name="sp">The presence closing</param>
52 /// <param name="saveChanged">Save changed attachments.</param>
53 /// <param name="saveAllScripted">Save attachments with scripts even if they haven't changed.</para>
54 void DeRezAttachments(IScenePresence sp, bool saveChanged, bool saveAllScripted);
50 55
51 /// <summary> 56 /// <summary>
52 /// Delete all the presence's attachments from the scene 57 /// Delete all the presence's attachments from the scene