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) 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);
}
} }
} }