private static void Execute([NotNull] PipelineStartInfo info) { using (new ProfileSection("Execute pipeline processors")) { ProfileSection.Argument("info", info); try { if (info.PipelineController != null) { info.PipelineController.Maximum = ProcessorManager.GetProcessorsCount(info.ProcessorArgs, info._Steps); } bool result = ExecuteSteps(info.ProcessorArgs, info._Steps, info.PipelineController); if (info.PipelineController != null) { info.PipelineController.Finish("Done.", result); } if (result) { info.ProcessorArgs.FireOnCompleted(); info.ProcessorArgs.Dispose(); } } catch (Exception ex) { Log.Warn(ex, "An error occurred during executing a pipeline"); info.ProcessorArgs.Dispose(); } } }