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-safe
0.7.4.1
Justin Clark-Casey (justincc) 2012-07-04 21:22:43 +01:00
parent 3769739ca7
commit 4b2b14dad1
1 changed files with 2 additions and 4 deletions

View File

@ -4333,9 +4333,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)
{ {