/// <summary> /// Executes a parallel target using the correct <see cref="ITargetLogger"/> /// </summary> /// <param name="pcall">The target</param> /// <param name="cacophony">Whether or not cacophany logging is requested</param> /// <param name="state">The concurrency state used to synchonize the threads</param> /// <param name="index">The index of this thread in the grand scheme of things</param> private void ExecuteWithCorrectLogging(ParallelTarget pcall, Boolean cacophony, ConcurrencyState state, Int32 index) { try { this.ExecuteWithCorrectLogging( () => this.Project.Execute(pcall.TargetName, pcall.CascadeDependencies, this, this.CloneCallStack(), this.Logger, pcall.Arguments), logger => this.Project.Execute(pcall.TargetName, pcall.CascadeDependencies, this, this.CloneCallStack(), logger, pcall.Arguments), cacophony, state, index); } catch (ArgumentException e) { throw new BuildException(e.Message, this.Location); } }
public virtual void AddPath(ParallelTarget path) { this.Children.Add(path); }