aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs20
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 }