Ignore:
Timestamp:
Jun 30, 2010, 1:22:53 PM (11 years ago)
Author:
kopal
Message:
  • some execution engine fixes
File:
1 edited

Legend:

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

    r1700 r1713  
    346346            {
    347347                if (connectorModel.HasData)
    348                 {                   
     348                {
    349349                    try
    350350                    {
     
    359359                            propertyInfo.SetValue(PluginModel.Plugin, connectorModel.Data, null);
    360360                        }
     361
    361362                    }
    362363                    catch (Exception ex)
     
    367368                        return;
    368369                    }
     370                    finally
     371                    {
     372                        connectorModel.HasData = false;
     373                        connectorModel.Data = null;
     374                        foreach (ConnectionModel connectionModel in connectorModel.InputConnections)
     375                        {
     376                            connectionModel.Active = false;
     377                            connectorModel.GuiNeedsUpdate = true;
     378                        }
     379                    }
    369380                }
    370381            }
    371382           
    372             msg.PluginModel.Plugin.Execute();           
     383            msg.PluginModel.Plugin.Execute();         
    373384
    374385            if (this.executionEngine.BenchmarkPlugins)
     
    398409
    399410            thread = new System.Threading.Thread(this.Start);
    400             thread.SetApartmentState(System.Threading.ApartmentState.STA);
     411            thread.SetApartmentState(System.Threading.ApartmentState.MTA);
    401412                        thread.Name = name;
    402413           
     
    432443                        if (this.waitingProtocols.Count == 0)
    433444                            break;
     445
    434446                        protocol = this.waitingProtocols.Dequeue();
    435447
     
    440452                            {
    441453                                foreach (ConnectionModel connection in outputConnector.OutputConnections)
    442                                 {
    443                                    
    444                                     if (connection.To.PluginModel.PluginProtocol.QueueLength > 0 &&
    445                                         connection.To.PluginModel != pluginProtocol.PluginModel &&
     454                                {                                   
     455                                    if (connection.To.HasData &&
     456                                        connection.To.PluginModel != pluginProtocol.PluginModel &&
    446457                                        donotrun == false)
    447458                                    {                                           
Note: See TracChangeset for help on using the changeset viewer.