@Override public ExperimentResults compute(Builder builder, Set<SimArgs> inputs) { final Thread main = Thread.currentThread(); Executors.newScheduledThreadPool(1).schedule(new Runnable() { @Override public void run() { LOGGER.trace("Interrupt {}", main); main.interrupt(); } }, builder.warmupPeriodMs, TimeUnit.MILLISECONDS); // remove listeners only during warmup final List<ResultListener> list = new ArrayList<>(builder.resultListeners); builder.resultListeners.clear(); final ExperimentResults results = delegate.compute(builder, inputs); builder.resultListeners.addAll(list); return results; } }
@Override public ExperimentResults compute(Builder builder, Set<SimArgs> inputs) { final Thread main = Thread.currentThread(); Executors.newScheduledThreadPool(1).schedule(new Runnable() { @Override public void run() { LOGGER.trace("Interrupt {}", main); main.interrupt(); } }, builder.warmupPeriodMs, TimeUnit.MILLISECONDS); // remove listeners only during warmup final List<ResultListener> list = new ArrayList<>(builder.resultListeners); builder.resultListeners.clear(); final ExperimentResults results = delegate.compute(builder, inputs); builder.resultListeners.addAll(list); return results; } }
return computerType.get().compute(this, runners);
return computerType.get().compute(this, runners);