Skip to content

Commit

Permalink
lock FreezeTokenSrcs when adding
Browse files Browse the repository at this point in the history
  • Loading branch information
erfg12 committed Oct 26, 2020
1 parent 7e66dfd commit c084992
Showing 1 changed file with 22 additions and 16 deletions.
38 changes: 22 additions & 16 deletions Memory/memory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -349,24 +349,27 @@ bool IsDigitsOnly(string str)
public void FreezeValue(string address, string type, string value, string file = "")
{
CancellationTokenSource cts = new CancellationTokenSource();
if (FreezeTokenSrcs.ContainsKey(address))

lock (FreezeTokenSrcs)
{
Debug.WriteLine("Changing Freezing Address " + address + " Value " + value);
try
if (FreezeTokenSrcs.ContainsKey(address))
{
FreezeTokenSrcs[address].Cancel();
FreezeTokenSrcs.Remove(address);
}
catch
{
Debug.WriteLine("ERROR: Avoided a crash. Address " + address + " was not frozen.");
Debug.WriteLine("Changing Freezing Address " + address + " Value " + value);
try
{
FreezeTokenSrcs[address].Cancel();
FreezeTokenSrcs.Remove(address);
}
catch
{
Debug.WriteLine("ERROR: Avoided a crash. Address " + address + " was not frozen.");
}
}
}
else
Debug.WriteLine("Adding Freezing Address " + address + " Value " + value);
else
Debug.WriteLine("Adding Freezing Address " + address + " Value " + value);

FreezeTokenSrcs.Add(address, cts);
FreezeTokenSrcs.Add(address, cts);
}

Task.Factory.StartNew(() =>
{
Expand All @@ -388,8 +391,11 @@ public void UnfreezeValue(string address)
Debug.WriteLine("Un-Freezing Address " + address);
try
{
FreezeTokenSrcs[address].Cancel();
FreezeTokenSrcs.Remove(address);
lock (FreezeTokenSrcs)
{
FreezeTokenSrcs[address].Cancel();
FreezeTokenSrcs.Remove(address);
}
}
catch
{
Expand Down

0 comments on commit c084992

Please sign in to comment.