diff options
author | Dr Scofield | 2009-03-11 09:07:50 +0000 |
---|---|---|
committer | Dr Scofield | 2009-03-11 09:07:50 +0000 |
commit | b6b83be56266e3d6f863af9158fa2248dba2261f (patch) | |
tree | 763d8b64b2a305f8f274f8aa8274458db056e772 | |
parent | Adding AssetInventory InventoryArchive plugin (diff) | |
download | opensim-SC-b6b83be56266e3d6f863af9158fa2248dba2261f.zip opensim-SC-b6b83be56266e3d6f863af9158fa2248dba2261f.tar.gz opensim-SC-b6b83be56266e3d6f863af9158fa2248dba2261f.tar.bz2 opensim-SC-b6b83be56266e3d6f863af9158fa2248dba2261f.tar.xz |
From: Alan M Webb <alan_webb@us.ibm.com>
This fixes *another* sync error in a list/dictionary
iterator. This time in WorldComm. I'm beginning to think
something is going on...
-rw-r--r-- | OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs index 090f1d5..08e08c8 100644 --- a/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs | |||
@@ -575,13 +575,16 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm | |||
575 | { | 575 | { |
576 | List<Object> data = new List<Object>(); | 576 | List<Object> data = new List<Object>(); |
577 | 577 | ||
578 | foreach (List<ListenerInfo> list in m_listeners.Values) | 578 | lock (m_listeners) |
579 | { | 579 | { |
580 | foreach (ListenerInfo l in list) | 580 | foreach (List<ListenerInfo> list in m_listeners.Values) |
581 | { | 581 | { |
582 | if (l.GetItemID() == itemID) | 582 | foreach (ListenerInfo l in list) |
583 | data.AddRange(l.GetSerializationData()); | 583 | { |
584 | } | 584 | if (l.GetItemID() == itemID) |
585 | data.AddRange(l.GetSerializationData()); | ||
586 | } | ||
587 | } | ||
585 | } | 588 | } |
586 | return (Object[])data.ToArray(); | 589 | return (Object[])data.ToArray(); |
587 | } | 590 | } |