Lock Variables while adding to it to prevent threading issues

This commit is contained in:
2019-01-22 20:35:23 +01:00
parent 4062d2f140
commit b743759146

View File

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