In llRequestInventoryData() use GetInventoryItems() rather than cloning TaskInventory directory

GetInventoryItems() returns a new list and so is equivalent, and creates this list under lock whereas Clone() is not thread-safe
0.7.4.1
Justin Clark-Casey (justincc) 2012-07-04 21:19:16 +01:00
parent 3717812ce0
commit 3769739ca7
1 changed files with 2 additions and 3 deletions

View File

@ -4084,9 +4084,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
TaskInventoryDictionary itemDictionary = (TaskInventoryDictionary)m_host.TaskInventory.Clone();
foreach (TaskInventoryItem item in itemDictionary.Values)
foreach (TaskInventoryItem item in m_host.Inventory.GetInventoryItems())
{
if (item.Type == 3 && item.Name == name)
{
@ -4118,6 +4116,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return tid.ToString();
}
}
ScriptSleep(1000);
return String.Empty;
}