mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
Merge branch 'master' into careminster-presence-refactor
Integrate the next large patch. Don't use this version, it has a ghost avatar issue. Next push will fix it.
This commit is contained in:
@@ -1533,7 +1533,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
lock (m_entityUpdates.SyncRoot)
|
||||
{
|
||||
m_killRecord.Add(localID);
|
||||
OutPacket(kill, ThrottleOutPacketType.State);
|
||||
|
||||
// The throttle queue used here must match that being used for updates. Otherwise, there is a
|
||||
// chance that a kill packet put on a separate queue will be sent to the client before an existing
|
||||
// update packet on another queue. Receiving updates after kills results in unowned and undeletable
|
||||
// scene objects in a viewer until that viewer is relogged in.
|
||||
OutPacket(kill, ThrottleOutPacketType.Task);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,8 +420,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
|
||||
/// <summary>
|
||||
/// Loops through all of the packet queues for this client and tries to send
|
||||
/// any outgoing packets, obeying the throttling bucket limits
|
||||
/// an outgoing packet from each, obeying the throttling bucket limits
|
||||
/// </summary>
|
||||
///
|
||||
/// Packet queues are inspected in ascending numerical order starting from 0. Therefore, queues with a lower
|
||||
/// ThrottleOutPacketType number will see their packet get sent first (e.g. if both Land and Wind queues have
|
||||
/// packets, then the packet at the front of the Land queue will be sent before the packet at the front of the
|
||||
/// wind queue).
|
||||
///
|
||||
/// <remarks>This function is only called from a synchronous loop in the
|
||||
/// UDPServer so we don't need to bother making this thread safe</remarks>
|
||||
/// <returns>True if any packets were sent, otherwise false</returns>
|
||||
|
||||
@@ -500,6 +500,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
// FIXME: Implement?
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Actually send a packet to a client.
|
||||
/// </summary>
|
||||
/// <param name="outgoingPacket"></param>
|
||||
internal void SendPacketFinal(OutgoingPacket outgoingPacket)
|
||||
{
|
||||
UDPPacketBuffer buffer = outgoingPacket.Buffer;
|
||||
|
||||
Reference in New Issue
Block a user