aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDr Scofield2009-03-11 09:07:50 +0000
committerDr Scofield2009-03-11 09:07:50 +0000
commitb6b83be56266e3d6f863af9158fa2248dba2261f (patch)
tree763d8b64b2a305f8f274f8aa8274458db056e772
parentAdding AssetInventory InventoryArchive plugin (diff)
downloadopensim-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.cs15
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 }