Ignore:
Timestamp:
Aug 6, 2010, 5:00:58 PM (11 years ago)
Author:
kopal
Message:
  • added RepeatStart Property to PluginModel
  • some optimizations on executionEngine
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/Execution/ExecutionEngine.cs

    r1759 r1769  
    7777            {
    7878                IsRunning = true;
    79 
     79                int amountSchedulers = System.Environment.ProcessorCount * 2;
     80               
    8081                //Here we create n = "ProcessorsCount * 2" Gears4Net schedulers
    8182                //We do this, because measurements showed that we get the best performance if we
    8283                //use this amount of schedulers
    83                 schedulers = new Scheduler[System.Environment.ProcessorCount*2];
    84                 for(int i=0;i< System.Environment.ProcessorCount*2;i++){
     84                schedulers = new Scheduler[amountSchedulers];
     85                for (int i = 0; i < amountSchedulers; i++)
     86                {
    8587                    schedulers[i] = new WorkspaceManagerScheduler("Scheduler" + i);                   
    8688                }
     
    115117                   
    116118                    pluginProtocol.Start();
    117                     counter = (counter + 1) % (System.Environment.ProcessorCount*2);
     119                    counter = (counter + 1) % (amountSchedulers);
    118120
    119121                    if (pluginModel.Startable)
     
    336338        private void HandleExecute(MessageExecution msg)
    337339        {
     340           
    338341            //executionEngine.GuiLogMessage("HandleExecute for \"" + msg.PluginModel.Name + "\"", NotificationLevel.Debug);
    339342            //Fill the plugins Inputs with data
     
    365368                }
    366369            }
    367            
     370
    368371            msg.PluginModel.Plugin.Execute();
    369            
     372
    370373            if (this.executionEngine.BenchmarkPlugins)
    371374            {
     
    385388                        connectorModel.GuiNeedsUpdate = true;
    386389
    387                         if (!connectionModel.From.PluginModel.Startable)
     390                        if (!connectionModel.From.PluginModel.Startable || (connectionModel.From.PluginModel.Startable && connectionModel.From.PluginModel.RepeatStart))
    388391                        {
    389392                            connectionModel.From.PluginModel.checkExecutable(connectionModel.From.PluginModel.PluginProtocol);
    390393                        }
    391                     }                   
    392                 }
    393             }
    394            
     394                    }
     395                }
     396            }             
    395397        }
    396398     
Note: See TracChangeset for help on using the changeset viewer.