예제 #1
0
        private void ExecutePlugins(IJob job, Action<IPlugin> pluginAction)
        {
            foreach( IPlugin plugin in job.GetRunablePlugins() )
            {
                lock (plugin)
                {
                    if(plugin.IsRunning || !plugin.IsReadyForOperation)
                        continue;

                    if (Broker.HasAvailableSlots(plugin /*, job.CurrentCommand == JobCommands.Commit*/))
                        pluginAction(plugin);
                }
            }
        }