From a4107cb6c70622c72cb5fc29e34c1c187787db7c Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Tue, 29 Jul 2014 23:39:10 +0100 Subject: [PATCH] In TerrainModule, lock m_perClientPatchUpdates when removing entries. This may have been the trigger CheckSendingPatchesToClients() dictionary out of sync exceptions in today's load test. Don't need to check ContainsKey() since Remove() returns false on a request to remove a key that it doesn't have --- OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs index a0f9129148..cd76693f42 100644 --- a/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs +++ b/OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs @@ -873,10 +873,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain presence.ControllingClient.OnLandUndo -= client_OnLandUndo; presence.ControllingClient.OnUnackedTerrain -= client_OnUnackedTerrain; } - if (m_perClientPatchUpdates.ContainsKey(client)) - { + + lock (m_perClientPatchUpdates) m_perClientPatchUpdates.Remove(client); - } } ///