From 5d53789a49f6464596497dbb5ea05f022e60993d Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 10 Aug 2010 16:00:35 +0100 Subject: Handle incoming ObjectImage (TextureEntry) updates synchronously rather than asynchronously At least on stock Linden clients, updating the texture on all faces of the prim will actually send an ObjectImage packet for each update. There is a race condition if these are handled async, meaning that occasionally not all of the faces are correctly updated. --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 540fccc..d3e8141 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -4735,7 +4735,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.ObjectScale, HandleObjectScale); AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation); AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate); - AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage); + + // Handle ObjectImage (TextureEntry) updates synchronously, since when updating multiple prim faces at once, + // some clients will send out a separate ObjectImage packet for each face + AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage, false); + AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab, false); AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate, false); AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab); -- cgit v1.1