예제 #1
0
        private void OnProcessExecutionEnd(UoeExecution obj)
        {
            // add compiled files to this list
            Monitor.Enter(_lock);
            try {
                if (obj is UoeExecutionCompile compilation)
                {
                    CompiledFiles.TryAddRange(compilation.CompiledFiles);
                }
            } catch (Exception e) {
                HandledExceptions.Add(new UoeExecutionException("Error when checking the compilation results.", e));
            } finally {
                Monitor.Exit(_lock);
            }

            // only do the rest when reaching the last process
            if (NumberOfProcessesRunning > 0)
            {
                return;
            }

            if (!HasBeenKilled)
            {
                PublishParallelCompilationResults();
            }
        }
예제 #2
0
 private void OnProcessExecutionException(UoeExecution obj)
 {
     if (_firstProcessWithExceptions == null)
     {
         _firstProcessWithExceptions = obj;
     }
     // if one fails, all must fail
     KillProcess();
 }