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(); } }
private void OnProcessExecutionException(UoeExecution obj) { if (_firstProcessWithExceptions == null) { _firstProcessWithExceptions = obj; } // if one fails, all must fail KillProcess(); }