From fb4b3065537c338def11f6fb34e800d2e88e0f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 7 Jun 2015 15:21:17 +0200 Subject: [PATCH] avoid a bad choice of lock objects --- OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs index d7ae731a5f..394ad368bc 100644 --- a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs @@ -31,7 +31,8 @@ namespace OpenRA.Mods.Common.Widgets bool isMoving; bool update; - object syncWorker = new object(); + readonly object syncWorker = new object(); + readonly object bufferSync = new object(); Thread workerThread; bool workerAlive; @@ -111,7 +112,7 @@ namespace OpenRA.Mods.Common.Widgets } } - lock (front) + lock (bufferSync) { var swap = front; front = back; @@ -123,7 +124,7 @@ namespace OpenRA.Mods.Common.Widgets public override void Draw() { - if (Monitor.TryEnter(front)) + if (Monitor.TryEnter(bufferSync)) { try { @@ -131,7 +132,7 @@ namespace OpenRA.Mods.Common.Widgets } finally { - Monitor.Exit(front); + Monitor.Exit(bufferSync); } }