Example #1
0
        ////private DbgVerbCounter dbgVerbCounter = new DbgVerbCounter();

        /// <summary>
        /// Initializes a new instance of the Scheduler class.
        /// </summary>
        /// <param name="jobParallelism">
        /// Degree of parallel execution to allow.
        /// </param>
        /// <param name="rejectCachedFailures">
        /// Whether to reject cached failures.
        /// </param>
        public Scheduler(int jobParallelism)
        {
            this.targets              = new HashSet <BuildObject>();
            this.waitIndex            = new WaitIndex();
            this.repository           = BuildEngine.theEngine.Repository;
            this.unrecordableFailures = new Dictionary <IVerb, Disposition>();
            this.verbToposorter       = new VerbToposorter();
            this.verbRunner           = new VerbRunner(this.verbToposorter, jobParallelism);
            this.resolvedVerbs        = new HashSet <IVerb>();
            this.completedVerbs       = new HashSet <IVerb>();
            this.outputToVerbMap      = new Dictionary <BuildObject, IVerb>();
            this.knownVerbs           = new HashSet <IVerb>();
            this.depCache             = new DependencyCache();
            this.rejectCachedFailures = true;    // this is now permanent. The code path for caching Failure results has rotted.
        }
Example #2
0
        public AsyncRunner(VerbToposorter verbToposorter, int jobParallelism)
        {
            this.verbToposorter = verbToposorter;
            this.jobParallelism = jobParallelism;
            completionEvent     = new ManualResetEvent(true);

            verbStateLock = new ReaderWriterLock();
            runnableVerbs = new HashSet <IVerb>();
            startedVerbs  = new HashSet <IVerb>();

            taskCompletions     = new List <TaskCompletion>();
            taskCompletionsLock = new ReaderWriterLock();

            runningTasks = 0;
        }
Example #3
0
 public Scheduler(int jobParallelism, IItemCache itemCache, bool rejectCachedFailures)
 {
     targets                   = new HashSet <BuildObject>();
     waitIndex                 = new WaitIndex();
     nuObjContents             = BuildEngine.theEngine.getNuObjContents();
     resultCache               = new ResultCache(itemCache, nuObjContents);
     unrecordableFailures      = new Dictionary <IVerb, Disposition>();
     this.hasher               = BuildEngine.theEngine.getHasher();
     verbToposorter            = new VerbToposorter(hasher);
     asyncRunner               = new AsyncRunner(verbToposorter, jobParallelism);
     resolvedVerbs             = new HashSet <IVerb>();
     completedVerbs            = new HashSet <IVerb>();
     depCache                  = new DependencyCache();
     this.rejectCachedFailures = rejectCachedFailures;
 }