diff options
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 7 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 4 |
3 files changed, 17 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 2163c12..cede050 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -1523,7 +1523,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1523 | lock (m_entityUpdates.SyncRoot) | 1523 | lock (m_entityUpdates.SyncRoot) |
1524 | { | 1524 | { |
1525 | m_killRecord.Add(localID); | 1525 | m_killRecord.Add(localID); |
1526 | OutPacket(kill, ThrottleOutPacketType.State); | 1526 | |
1527 | // The throttle queue used here must match that being used for updates. Otherwise, there is a | ||
1528 | // chance that a kill packet put on a separate queue will be sent to the client before an existing | ||
1529 | // update packet on another queue. Receiving updates after kills results in unowned and undeletable | ||
1530 | // scene objects in a viewer until that viewer is relogged in. | ||
1531 | OutPacket(kill, ThrottleOutPacketType.Task); | ||
1527 | } | 1532 | } |
1528 | } | 1533 | } |
1529 | } | 1534 | } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs index 6232c48..ca5a7bd 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs | |||
@@ -412,8 +412,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
412 | 412 | ||
413 | /// <summary> | 413 | /// <summary> |
414 | /// Loops through all of the packet queues for this client and tries to send | 414 | /// Loops through all of the packet queues for this client and tries to send |
415 | /// any outgoing packets, obeying the throttling bucket limits | 415 | /// an outgoing packet from each, obeying the throttling bucket limits |
416 | /// </summary> | 416 | /// </summary> |
417 | /// | ||
418 | /// Packet queues are inspected in ascending numerical order starting from 0. Therefore, queues with a lower | ||
419 | /// ThrottleOutPacketType number will see their packet get sent first (e.g. if both Land and Wind queues have | ||
420 | /// packets, then the packet at the front of the Land queue will be sent before the packet at the front of the | ||
421 | /// wind queue). | ||
422 | /// | ||
417 | /// <remarks>This function is only called from a synchronous loop in the | 423 | /// <remarks>This function is only called from a synchronous loop in the |
418 | /// UDPServer so we don't need to bother making this thread safe</remarks> | 424 | /// UDPServer so we don't need to bother making this thread safe</remarks> |
419 | /// <returns>True if any packets were sent, otherwise false</returns> | 425 | /// <returns>True if any packets were sent, otherwise false</returns> |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 56e8c9b..cb298fd 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -500,6 +500,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
500 | // FIXME: Implement? | 500 | // FIXME: Implement? |
501 | } | 501 | } |
502 | 502 | ||
503 | /// <summary> | ||
504 | /// Actually send a packet to a client. | ||
505 | /// </summary> | ||
506 | /// <param name="outgoingPacket"></param> | ||
503 | internal void SendPacketFinal(OutgoingPacket outgoingPacket) | 507 | internal void SendPacketFinal(OutgoingPacket outgoingPacket) |
504 | { | 508 | { |
505 | UDPPacketBuffer buffer = outgoingPacket.Buffer; | 509 | UDPPacketBuffer buffer = outgoingPacket.Buffer; |