diff options
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.
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 10 |
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 | } |