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.
This commit is contained in:
Justin Clark-Casey (justincc)
2012-06-25 22:48:13 +01:00
parent 5301648cff
commit e5b739aaeb
4 changed files with 42 additions and 29 deletions

View File

@@ -43,10 +43,15 @@ namespace OpenSim.Region.Framework.Interfaces
void RezAttachments(IScenePresence sp);
/// <summary>
/// Save the attachments that have change on this presence.
/// Derez the attachements for a scene presence that is closing.
/// </summary>
/// <param name="sp"></param>
void SaveChangedAttachments(IScenePresence sp, bool saveAllScripted);
/// <remarks>
/// Attachment changes are saved.
/// </remarks>
/// <param name="sp">The presence closing</param>
/// <param name="saveChanged">Save changed attachments.</param>
/// <param name="saveAllScripted">Save attachments with scripts even if they haven't changed.</para>
void DeRezAttachments(IScenePresence sp, bool saveChanged, bool saveAllScripted);
/// <summary>
/// Delete all the presence's attachments from the scene