aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2012-08-29 11:45:28 +0200
committerMelanie2012-08-29 11:45:28 +0200
commit74465df43f7ee92f44ba65c19c01e02fa1f13e98 (patch)
treedc3d5a7a065e8fd8ec68df4b89149178f77bac66
parentRemove Justin's addition to avoid sending incoming packets to inactive clients (diff)
downloadopensim-SC_OLD-74465df43f7ee92f44ba65c19c01e02fa1f13e98.zip
opensim-SC_OLD-74465df43f7ee92f44ba65c19c01e02fa1f13e98.tar.gz
opensim-SC_OLD-74465df43f7ee92f44ba65c19c01e02fa1f13e98.tar.bz2
opensim-SC_OLD-74465df43f7ee92f44ba65c19c01e02fa1f13e98.tar.xz
Fix issue with the quit packet being stuck int he queue and a one packet delay.
Also fix semaphore excetion caused by enqueueing while dequque is taking place.
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs10
1 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index c817e44..75a47d5 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -1606,10 +1606,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1606 else 1606 else
1607 res = m_lowQueue.Dequeue(); 1607 res = m_lowQueue.Dequeue();
1608 1608
1609 if (m_highQueue.Count == 0 || m_lowQueue.Count == 0) 1609 if (m_highQueue.Count == 0 && m_lowQueue.Count == 0)
1610 return true; 1610 return true;
1611 1611
1612 m_s.Release(); 1612 try
1613 {
1614 m_s.Release();
1615 }
1616 catch
1617 {
1618 }
1613 1619
1614 return true; 1620 return true;
1615 } 1621 }