diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 24 |
2 files changed, 28 insertions, 13 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index e81ff4b..6f0b177 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -346,15 +346,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
346 | protected int m_terrainCheckerCount; | 346 | protected int m_terrainCheckerCount; |
347 | protected uint m_agentFOVCounter; | 347 | protected uint m_agentFOVCounter; |
348 | 348 | ||
349 | // These numbers are guesses at a decent tradeoff between responsiveness | ||
350 | // of the interest list and throughput. Lower is more responsive, higher | ||
351 | // is better throughput | ||
352 | protected int m_primTerseUpdatesPerPacket = 25; | ||
353 | protected int m_primFullUpdatesPerPacket = 100; | ||
354 | protected int m_avatarTerseUpdatesPerPacket = 10; | ||
355 | /// <summary>Number of texture packets to put on the queue each time the | ||
356 | /// OnQueueEmpty event is triggered for the texture category</summary> | ||
357 | protected int m_textureSendLimit = 20; | ||
358 | protected IAssetService m_assetService; | 349 | protected IAssetService m_assetService; |
359 | private IHyperAssetService m_hyperAssets; | 350 | private IHyperAssetService m_hyperAssets; |
360 | 351 | ||
@@ -3333,7 +3324,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3333 | 3324 | ||
3334 | lock (m_avatarTerseUpdates.SyncRoot) | 3325 | lock (m_avatarTerseUpdates.SyncRoot) |
3335 | { | 3326 | { |
3336 | int count = Math.Min(m_avatarTerseUpdates.Count, m_avatarTerseUpdatesPerPacket); | 3327 | int count = Math.Min(m_avatarTerseUpdates.Count, m_udpServer.AvatarTerseUpdatesPerPacket); |
3337 | if (count == 0) | 3328 | if (count == 0) |
3338 | return; | 3329 | return; |
3339 | 3330 | ||
@@ -3418,7 +3409,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3418 | 3409 | ||
3419 | lock (m_primFullUpdates.SyncRoot) | 3410 | lock (m_primFullUpdates.SyncRoot) |
3420 | { | 3411 | { |
3421 | int count = Math.Min(m_primFullUpdates.Count, m_primFullUpdatesPerPacket); | 3412 | int count = Math.Min(m_primFullUpdates.Count, m_udpServer.PrimFullUpdatesPerPacket); |
3422 | if (count == 0) | 3413 | if (count == 0) |
3423 | return; | 3414 | return; |
3424 | 3415 | ||
@@ -3462,7 +3453,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3462 | 3453 | ||
3463 | lock (m_primTerseUpdates.SyncRoot) | 3454 | lock (m_primTerseUpdates.SyncRoot) |
3464 | { | 3455 | { |
3465 | int count = Math.Min(m_primTerseUpdates.Count, m_primTerseUpdatesPerPacket); | 3456 | int count = Math.Min(m_primTerseUpdates.Count, m_udpServer.PrimTerseUpdatesPerPacket); |
3466 | if (count == 0) | 3457 | if (count == 0) |
3467 | return; | 3458 | return; |
3468 | 3459 | ||
@@ -3585,7 +3576,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3585 | void ProcessTextureRequests() | 3576 | void ProcessTextureRequests() |
3586 | { | 3577 | { |
3587 | if (m_imageManager != null) | 3578 | if (m_imageManager != null) |
3588 | m_imageManager.ProcessImageQueue(m_textureSendLimit); | 3579 | m_imageManager.ProcessImageQueue(m_udpServer.TextureSendLimit); |
3589 | } | 3580 | } |
3590 | 3581 | ||
3591 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) | 3582 | public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID) |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index e9faf2e..232c9c9 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -98,6 +98,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
98 | 98 | ||
99 | /// <summary>The measured resolution of Environment.TickCount</summary> | 99 | /// <summary>The measured resolution of Environment.TickCount</summary> |
100 | public readonly float TickCountResolution; | 100 | public readonly float TickCountResolution; |
101 | /// <summary>Number of terse prim updates to put on the queue each time the | ||
102 | /// OnQueueEmpty event is triggered for updates</summary> | ||
103 | public readonly int PrimTerseUpdatesPerPacket; | ||
104 | /// <summary>Number of terse avatar updates to put on the queue each time the | ||
105 | /// OnQueueEmpty event is triggered for updates</summary> | ||
106 | public readonly int AvatarTerseUpdatesPerPacket; | ||
107 | /// <summary>Number of full prim updates to put on the queue each time the | ||
108 | /// OnQueueEmpty event is triggered for updates</summary> | ||
109 | public readonly int PrimFullUpdatesPerPacket; | ||
110 | /// <summary>Number of texture packets to put on the queue each time the | ||
111 | /// OnQueueEmpty event is triggered for textures</summary> | ||
112 | public readonly int TextureSendLimit; | ||
101 | 113 | ||
102 | /// <summary>Handlers for incoming packets</summary> | 114 | /// <summary>Handlers for incoming packets</summary> |
103 | //PacketEventDictionary packetEvents = new PacketEventDictionary(); | 115 | //PacketEventDictionary packetEvents = new PacketEventDictionary(); |
@@ -172,6 +184,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
172 | m_asyncPacketHandling = config.GetBoolean("async_packet_handling", false); | 184 | m_asyncPacketHandling = config.GetBoolean("async_packet_handling", false); |
173 | m_recvBufferSize = config.GetInt("client_socket_rcvbuf_size", 0); | 185 | m_recvBufferSize = config.GetInt("client_socket_rcvbuf_size", 0); |
174 | sceneThrottleBps = config.GetInt("scene_throttle_max_bps", 0); | 186 | sceneThrottleBps = config.GetInt("scene_throttle_max_bps", 0); |
187 | |||
188 | PrimTerseUpdatesPerPacket = config.GetInt("PrimTerseUpdatesPerPacket", 25); | ||
189 | AvatarTerseUpdatesPerPacket = config.GetInt("AvatarTerseUpdatesPerPacket", 10); | ||
190 | PrimFullUpdatesPerPacket = config.GetInt("PrimFullUpdatesPerPacket", 100); | ||
191 | TextureSendLimit = config.GetInt("TextureSendLimit", 20); | ||
192 | } | ||
193 | else | ||
194 | { | ||
195 | PrimTerseUpdatesPerPacket = 25; | ||
196 | AvatarTerseUpdatesPerPacket = 10; | ||
197 | PrimFullUpdatesPerPacket = 100; | ||
198 | TextureSendLimit = 20; | ||
175 | } | 199 | } |
176 | 200 | ||
177 | m_throttle = new TokenBucket(null, sceneThrottleBps, sceneThrottleBps); | 201 | m_throttle = new TokenBucket(null, sceneThrottleBps, sceneThrottleBps); |