Changeset 1769


Ignore:
Timestamp:
Aug 6, 2010, 5:00:58 PM (11 years ago)
Author:
kopal
Message:
  • added RepeatStart Property to PluginModel
  • some optimizations on executionEngine
Location:
trunk/CrypPlugins/WorkspaceManager
Files:
4 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     
  • trunk/CrypPlugins/WorkspaceManager/Model/ConnectorModel.cs

    r1760 r1769  
    3838        /// </summary>
    3939        [NonSerialized]
    40         private bool hasData = false;
     40        private volatile bool hasData = false;
    4141
    4242        /// <summary>
     
    164164        /// <returns></returns>
    165165        public bool HasData
    166         {
     166        {           
    167167            get
    168168            {
     
    180180        /// </summary>
    181181        [NonSerialized]
    182         public object Data = null;
     182        public volatile object Data = null;
    183183
    184184        /// <summary>
  • trunk/CrypPlugins/WorkspaceManager/Model/PluginModel.cs

    r1759 r1769  
    4545        private int imageIndex = 0;
    4646        private PluginModelState state = PluginModelState.Normal;
    47 
    48         /// <summary>
    49         /// Name of the wrapped Plugins type
    50         /// </summary>
    5147        private string PluginTypeName = null;
    52         /// <summary>
    53         /// Name of the wrapped Plugins assembly
    54         /// </summary>
    5548        private string PluginTypeAssemblyName = null;
    5649       
     
    120113            }
    121114        }
     115
     116        /// <summary>
     117        /// Should this plugin may be startet again when it
     118        /// is startable?
     119        /// </summary>
     120        public bool RepeatStart;
    122121
    123122        /// <summary>
  • trunk/CrypPlugins/WorkspaceManager/Model/WorkspaceModel.cs

    r1755 r1769  
    9090            pluginModel.PluginType = pluginType;           
    9191            pluginModel.Name = pluginType.Name;
     92            pluginModel.RepeatStart = false;
    9293            pluginModel.generateConnectors();
    9394            pluginModel.Plugin.OnGuiLogNotificationOccured += this.WorkspaceManagerEditor.GuiLogNotificationOccured;
Note: See TracChangeset for help on using the changeset viewer.