internal static void Release(GraphDictionary store) { store.Input.ClearVariables(); store.Output.ClearVariables(); store.Local.ClearVariables(); _pool.Release(store); }
public IEnumerator Execute() { var store = GraphDictionary.Reserve(); yield return(Execute(store)); GraphDictionary.Release(store); }
public IEnumerator Execute(IVariableDictionary variables) { if (Graph) { var store = GraphDictionary.Reserve(); store.WriteInputs(this, Inputs, variables); store.WriteOutputs(Outputs); yield return(Graph.Execute(store)); store.ReadOutputs(this, Outputs, variables); GraphDictionary.Release(store); } }
public IEnumerator Execute(GraphDictionary variables) { if (IsRunning) { Debug.LogErrorFormat(this, _graphAlreadyRunningError, name); } else { Variables = variables; IsRunning = true; yield return(CompositionManager.Track(this, Run(StartNode, Variables, "Start"))); IsRunning = false; Variables = null; } }