diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index a3fdae1..0bb53c4 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -301,8 +301,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
301 | /// <remarks> | 301 | /// <remarks> |
302 | /// This allows the outbound loop to only operate when there is data to send rather than continuously polling. | 302 | /// This allows the outbound loop to only operate when there is data to send rather than continuously polling. |
303 | /// Some data is sent immediately and not queued. That data would not trigger this event. | 303 | /// Some data is sent immediately and not queued. That data would not trigger this event. |
304 | /// WRONG use. May be usefull in future revision | ||
304 | /// </remarks> | 305 | /// </remarks> |
305 | private AutoResetEvent m_dataPresentEvent = new AutoResetEvent(false); | 306 | // private AutoResetEvent m_dataPresentEvent = new AutoResetEvent(false); |
306 | 307 | ||
307 | private Pool<IncomingPacket> m_incomingPacketPool; | 308 | private Pool<IncomingPacket> m_incomingPacketPool; |
308 | 309 | ||
@@ -990,8 +991,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
990 | 991 | ||
991 | PacketPool.Instance.ReturnPacket(packet); | 992 | PacketPool.Instance.ReturnPacket(packet); |
992 | 993 | ||
993 | if (packetQueued) | 994 | /// WRONG use. May be usefull in future revision |
994 | m_dataPresentEvent.Set(); | 995 | // if (packetQueued) |
996 | // m_dataPresentEvent.Set(); | ||
995 | } | 997 | } |
996 | 998 | ||
997 | /// <summary> | 999 | /// <summary> |
@@ -1418,6 +1420,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1418 | queue.Enqueue(buffer); | 1420 | queue.Enqueue(buffer); |
1419 | return; | 1421 | return; |
1420 | } | 1422 | } |
1423 | |||
1421 | else if (packet.Type == PacketType.CompleteAgentMovement) | 1424 | else if (packet.Type == PacketType.CompleteAgentMovement) |
1422 | { | 1425 | { |
1423 | // Send ack straight away to let the viewer know that we got it. | 1426 | // Send ack straight away to let the viewer know that we got it. |
@@ -2150,13 +2153,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2150 | 2153 | ||
2151 | // If nothing was sent, sleep for the minimum amount of time before a | 2154 | // If nothing was sent, sleep for the minimum amount of time before a |
2152 | // token bucket could get more tokens | 2155 | // token bucket could get more tokens |
2153 | //if (!m_packetSent) | 2156 | |
2154 | // Thread.Sleep((int)TickCountResolution); | ||
2155 | // | ||
2156 | // Instead, now wait for data present to be explicitly signalled. Evidence so far is that with | ||
2157 | // modern mono it reduces CPU base load since there is no more continuous polling. | ||
2158 | if (!m_packetSent) | 2157 | if (!m_packetSent) |
2159 | m_dataPresentEvent.WaitOne(100); | 2158 | Thread.Sleep((int)TickCountResolution); |
2159 | |||
2160 | // .... wrong core code removed | ||
2161 | |||
2160 | 2162 | ||
2161 | Watchdog.UpdateThread(); | 2163 | Watchdog.UpdateThread(); |
2162 | } | 2164 | } |