Lock Variables while adding to it to prevent threading issues

This commit is contained in:
Deukhoofd 2019-01-22 20:35:23 +01:00
parent 4062d2f140
commit b743759146
No known key found for this signature in database
GPG Key ID: B4C087AC81641654
1 changed files with 13 additions and 10 deletions

View File

@ -40,17 +40,20 @@ namespace Upsilon.Evaluator
public void AssignToNearest(VariableSymbol symbol, ScriptType value)
{
if (Variables.ContainsKey(symbol.Name))
lock (Variables)
{
Variables[symbol.Name] = value;
}
else if (ParentScope != null)
{
ParentScope.AssignToNearest(symbol, value);
}
else
{
Variables.Add(symbol.Name, value);
if (Variables.ContainsKey(symbol.Name))
{
Variables[symbol.Name] = value;
}
else if (ParentScope != null)
{
ParentScope.AssignToNearest(symbol, value);
}
else
{
Variables.Add(symbol.Name, value);
}
}
}