avoid a bad choice of lock objects
This commit is contained in:
@@ -31,7 +31,8 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
bool isMoving;
|
bool isMoving;
|
||||||
|
|
||||||
bool update;
|
bool update;
|
||||||
object syncWorker = new object();
|
readonly object syncWorker = new object();
|
||||||
|
readonly object bufferSync = new object();
|
||||||
Thread workerThread;
|
Thread workerThread;
|
||||||
bool workerAlive;
|
bool workerAlive;
|
||||||
|
|
||||||
@@ -111,7 +112,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lock (front)
|
lock (bufferSync)
|
||||||
{
|
{
|
||||||
var swap = front;
|
var swap = front;
|
||||||
front = back;
|
front = back;
|
||||||
@@ -123,7 +124,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
|
|
||||||
public override void Draw()
|
public override void Draw()
|
||||||
{
|
{
|
||||||
if (Monitor.TryEnter(front))
|
if (Monitor.TryEnter(bufferSync))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -131,7 +132,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Monitor.Exit(front);
|
Monitor.Exit(bufferSync);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user