public IEnumerator Execute(VariableValue context) { var store = InstructionStore.Reserve(this, context); yield return(Execute(store)); InstructionStore.Release(store); }
public IEnumerator Execute(IVariableStore store, VariableValue context) { if (Instruction) { var localStore = InstructionStore.Reserve(Instruction, context); localStore.WriteInputs(this, _inputs, store); localStore.WriteOutputs(_outputs); yield return(Instruction.Execute(localStore)); localStore.ReadOutputs(this, _outputs, store); InstructionStore.Release(localStore); } }