In llMessageLinked() 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-safe0.7.3-extended
parent
e8a0ec1287
commit
aa1442b07e
|
@ -4041,7 +4041,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
return tid.ToString();
|
return tid.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptSleep(1000);
|
ScriptSleep(1000);
|
||||||
return String.Empty;
|
return String.Empty;
|
||||||
}
|
}
|
||||||
|
@ -4164,9 +4164,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
UUID partItemID;
|
UUID partItemID;
|
||||||
foreach (SceneObjectPart part in parts)
|
foreach (SceneObjectPart part in parts)
|
||||||
{
|
{
|
||||||
TaskInventoryDictionary itemsDictionary = (TaskInventoryDictionary)part.TaskInventory.Clone();
|
foreach (TaskInventoryItem item in part.Inventory.GetInventoryItems())
|
||||||
|
|
||||||
foreach (TaskInventoryItem item in itemsDictionary.Values)
|
|
||||||
{
|
{
|
||||||
if (item.Type == ScriptBaseClass.INVENTORY_SCRIPT)
|
if (item.Type == ScriptBaseClass.INVENTORY_SCRIPT)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue