diff options
author | John Hurliman | 2009-10-21 18:03:41 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-21 18:03:41 -0700 |
commit | 6492640e72776d9f0a015e6a719c8cef28ccb7e3 (patch) | |
tree | af67792558e46e5b5abce59032223b8bae388859 /OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |
parent | * Clarified what FireQueueEmpty is doing with a MIN_CALLBACK_MS constant and ... (diff) | |
download | opensim-SC_OLD-6492640e72776d9f0a015e6a719c8cef28ccb7e3.zip opensim-SC_OLD-6492640e72776d9f0a015e6a719c8cef28ccb7e3.tar.gz opensim-SC_OLD-6492640e72776d9f0a015e6a719c8cef28ccb7e3.tar.bz2 opensim-SC_OLD-6492640e72776d9f0a015e6a719c8cef28ccb7e3.tar.xz |
* Change the OnQueueEmpty signature to send the flags of the queues that are empty instead of firing once per empty queue
* Change the OnQueueEmpty firing to use a minimum time until next fire instead of a sleep
* Set OutgoingPacket.TickCount = 0 earlier to avoid extra resends when things are running slowly (inside a profiler, for example)
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 0bb7a71..432fee7 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -3550,33 +3550,35 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3550 | OutPacket(attach, ThrottleOutPacketType.Task); | 3550 | OutPacket(attach, ThrottleOutPacketType.Task); |
3551 | } | 3551 | } |
3552 | 3552 | ||
3553 | void HandleQueueEmpty(ThrottleOutPacketType queue) | 3553 | void HandleQueueEmpty(ThrottleOutPacketTypeFlags categories) |
3554 | { | 3554 | { |
3555 | switch (queue) | 3555 | if ((categories & ThrottleOutPacketTypeFlags.Task) != 0) |
3556 | { | 3556 | { |
3557 | case ThrottleOutPacketType.Texture: | 3557 | lock (m_avatarTerseUpdates.SyncRoot) |
3558 | ProcessTextureRequests(); | 3558 | { |
3559 | break; | 3559 | if (m_avatarTerseUpdates.Count > 0) |
3560 | case ThrottleOutPacketType.Task: | 3560 | ProcessAvatarTerseUpdates(); |
3561 | lock (m_avatarTerseUpdates.SyncRoot) | 3561 | } |
3562 | { | 3562 | } |
3563 | if (m_avatarTerseUpdates.Count > 0) | ||
3564 | ProcessAvatarTerseUpdates(); | ||
3565 | } | ||
3566 | break; | ||
3567 | case ThrottleOutPacketType.State: | ||
3568 | lock (m_primFullUpdates.SyncRoot) | ||
3569 | { | ||
3570 | if (m_primFullUpdates.Count > 0) | ||
3571 | ProcessPrimFullUpdates(); | ||
3572 | } | ||
3573 | 3563 | ||
3574 | lock (m_primTerseUpdates.SyncRoot) | 3564 | if ((categories & ThrottleOutPacketTypeFlags.State) != 0) |
3575 | { | 3565 | { |
3576 | if (m_primTerseUpdates.Count > 0) | 3566 | lock (m_primFullUpdates.SyncRoot) |
3577 | ProcessPrimTerseUpdates(); | 3567 | { |
3578 | } | 3568 | if (m_primFullUpdates.Count > 0) |
3579 | break; | 3569 | ProcessPrimFullUpdates(); |
3570 | } | ||
3571 | |||
3572 | lock (m_primTerseUpdates.SyncRoot) | ||
3573 | { | ||
3574 | if (m_primTerseUpdates.Count > 0) | ||
3575 | ProcessPrimTerseUpdates(); | ||
3576 | } | ||
3577 | } | ||
3578 | |||
3579 | if ((categories & ThrottleOutPacketTypeFlags.Texture) != 0) | ||
3580 | { | ||
3581 | ProcessTextureRequests(); | ||
3580 | } | 3582 | } |
3581 | } | 3583 | } |
3582 | 3584 | ||