aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDr Scofield2009-05-19 18:46:20 +0000
committerDr Scofield2009-05-19 18:46:20 +0000
commit14f0d5e77f65e0a0a4bbdbee0d51cd85e2d74b5d (patch)
tree88c8a116a0a5f28d2e5ece5f61b62c35d2cb1e37
parentFrom: Alan Webb <alan_webb@us.ibm.com> (diff)
downloadopensim-SC_OLD-14f0d5e77f65e0a0a4bbdbee0d51cd85e2d74b5d.zip
opensim-SC_OLD-14f0d5e77f65e0a0a4bbdbee0d51cd85e2d74b5d.tar.gz
opensim-SC_OLD-14f0d5e77f65e0a0a4bbdbee0d51cd85e2d74b5d.tar.bz2
opensim-SC_OLD-14f0d5e77f65e0a0a4bbdbee0d51cd85e2d74b5d.tar.xz
trying to fix exception with in LLPacketQueue probably caused by
missing locks where the queue was modified.
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs10
1 files changed, 5 insertions, 5 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs
index 594a943..4a94814 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs
@@ -189,7 +189,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
189 } 189 }
190 190
191 if (item.Sequence != 0) 191 if (item.Sequence != 0)
192 contents.Add(item.Sequence); 192 lock(contents) contents.Add(item.Sequence);
193 193
194 lock (this) 194 lock (this)
195 { 195 {
@@ -241,7 +241,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
241 item.TickCount = System.Environment.TickCount; 241 item.TickCount = System.Environment.TickCount;
242 if (item.Sequence == 0) 242 if (item.Sequence == 0)
243 return item; 243 return item;
244 lock (contents) 244 lock(contents)
245 { 245 {
246 if (contents.Contains(item.Sequence)) 246 if (contents.Contains(item.Sequence))
247 if (contents.Remove(item.Sequence)) 247 if (contents.Remove(item.Sequence))
@@ -252,13 +252,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
252 252
253 public void Cancel(uint sequence) 253 public void Cancel(uint sequence)
254 { 254 {
255 while (contents.Remove(sequence)) 255 lock(contents) while (contents.Remove(sequence))
256 ; 256 ;
257 } 257 }
258 258
259 public bool Contains(uint sequence) 259 public bool Contains(uint sequence)
260 { 260 {
261 return contents.Contains(sequence); 261 lock(contents) return contents.Contains(sequence);
262 } 262 }
263 263
264 public void Flush() 264 public void Flush()
@@ -318,7 +318,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
318 TextureOutgoingPacketQueue.Clear(); 318 TextureOutgoingPacketQueue.Clear();
319 AssetOutgoingPacketQueue.Clear(); 319 AssetOutgoingPacketQueue.Clear();
320 SendQueue.Clear(); 320 SendQueue.Clear();
321 contents.Clear(); 321 lock(contents) contents.Clear();
322 } 322 }
323 } 323 }
324 324