aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP/OpenSimUDPBase.cs
diff options
context:
space:
mode:
authorCasperW2009-11-21 18:50:52 +0100
committerMelanie2009-11-21 16:51:08 +0000
commit4a29a7f92cc5264dfcb4a4376a61506d29dd9d8d (patch)
tree31977d927ae2e22f315f13645213b0d3d88a9dc0 /OpenSim/Region/ClientStack/LindenUDP/OpenSimUDPBase.cs
parentImproved avatar responsiveness. (diff)
downloadopensim-SC-4a29a7f92cc5264dfcb4a4376a61506d29dd9d8d.zip
opensim-SC-4a29a7f92cc5264dfcb4a4376a61506d29dd9d8d.tar.gz
opensim-SC-4a29a7f92cc5264dfcb4a4376a61506d29dd9d8d.tar.bz2
opensim-SC-4a29a7f92cc5264dfcb4a4376a61506d29dd9d8d.tar.xz
Minor packet ordering fix
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/OpenSimUDPBase.cs40
1 files changed, 30 insertions, 10 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/OpenSimUDPBase.cs b/OpenSim/Region/ClientStack/LindenUDP/OpenSimUDPBase.cs
index 45d9170..de2cd24 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/OpenSimUDPBase.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/OpenSimUDPBase.cs
@@ -57,7 +57,12 @@ namespace OpenMetaverse
57 /// Standard queue for our outgoing SyncBeginPrioritySend 57 /// Standard queue for our outgoing SyncBeginPrioritySend
58 /// </summary> 58 /// </summary>
59 private List<UDPPacketBuffer> m_standardQueue = new List<UDPPacketBuffer>(); 59 private List<UDPPacketBuffer> m_standardQueue = new List<UDPPacketBuffer>();
60 60
61 /// <summary>
62 /// Medium priority queue for our outgoing SyncBeginPrioritySend
63 /// </summary>
64 private List<UDPPacketBuffer> m_mediumPriorityQueue = new List<UDPPacketBuffer>();
65
61 /// <summary> 66 /// <summary>
62 /// Prioritised queue for our outgoing SyncBeginPrioritySend 67 /// Prioritised queue for our outgoing SyncBeginPrioritySend
63 /// </summary> 68 /// </summary>
@@ -285,13 +290,16 @@ namespace OpenMetaverse
285 } 290 }
286 else 291 else
287 { 292 {
288 lock (m_standardQueue) 293 if (Priority != 0)
289 { 294 {
290 if (Priority != 0) 295 lock (m_mediumPriorityQueue)
291 { 296 {
292 m_standardQueue.Insert(0, buf); 297 m_mediumPriorityQueue.Add(buf);
293 } 298 }
294 else 299 }
300 else
301 {
302 lock (m_standardQueue)
295 { 303 {
296 m_standardQueue.Add(buf); 304 m_standardQueue.Add(buf);
297 } 305 }
@@ -339,17 +347,29 @@ namespace OpenMetaverse
339 } 347 }
340 else 348 else
341 { 349 {
342 lock (m_standardQueue) 350 lock (m_mediumPriorityQueue)
343 { 351 {
344 if (m_standardQueue.Count > 0) 352 if (m_mediumPriorityQueue.Count > 0)
345 { 353 {
346 UDPPacketBuffer buf = m_standardQueue[0]; 354 UDPPacketBuffer buf = m_mediumPriorityQueue[0];
347 m_standardQueue.RemoveAt(0); 355 m_mediumPriorityQueue.RemoveAt(0);
348 AsyncBeginSend(buf); 356 AsyncBeginSend(buf);
349 } 357 }
350 else 358 else
351 { 359 {
352 m_sendingData = false; 360 lock (m_standardQueue)
361 {
362 if (m_standardQueue.Count > 0)
363 {
364 UDPPacketBuffer buf = m_standardQueue[0];
365 m_standardQueue.RemoveAt(0);
366 AsyncBeginSend(buf);
367 }
368 else
369 {
370 m_sendingData = false;
371 }
372 }
353 } 373 }
354 } 374 }
355 } 375 }