mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 17:55:48 +08:00
* Consistently lock part.TaskInventory as pointed out in http://opensimulator.org/mantis/view.php?id=3159
* Not locking causes enumeration exceptions as described in this matis * part.TaskInventory needs to be locked for every access as it's a dictionary * Extra locking will hopefully not cause any major issues - in places where the enumeration of the dictionary performs other lock or long running operations, the dictionary is cloned instead
This commit is contained in:
@@ -226,9 +226,12 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
|
||||
{
|
||||
TaskInventoryDictionary tinv = sog.RootPart.TaskInventory;
|
||||
|
||||
foreach (TaskInventoryItem titem in tinv.Values)
|
||||
lock (tinv)
|
||||
{
|
||||
uuids.Add(titem.AssetID, (InventoryType)titem.Type == InventoryType.Texture);
|
||||
foreach (TaskInventoryItem titem in tinv.Values)
|
||||
{
|
||||
uuids.Add(titem.AssetID, (InventoryType)titem.Type == InventoryType.Texture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user