diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java index 67eb52d9b2961cebaf1c9b866552230beee879cf..434410124a93abf1535b1f12f560a08acdf3fd1e 100644 --- a/src/main/java/teetime/framework/AnalysisConfiguration.java +++ b/src/main/java/teetime/framework/AnalysisConfiguration.java @@ -1,7 +1,9 @@ package teetime.framework; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; import teetime.framework.pipe.PipeFactoryRegistry; @@ -11,19 +13,19 @@ public class AnalysisConfiguration { private final List<Runnable> threadableStageJobs = new LinkedList<Runnable>(); - private final List<Stage> consumerStages = new LinkedList<Stage>(); - private final List<Stage> finiteProducerStages = new LinkedList<Stage>(); - private final List<Stage> infiniteProducerStages = new LinkedList<Stage>(); + private final Set<Stage> consumerStages = new HashSet<Stage>(); + private final Set<Stage> finiteProducerStages = new HashSet<Stage>(); + private final Set<Stage> infiniteProducerStages = new HashSet<Stage>(); - public List<Stage> getConsumerStages() { + public Set<Stage> getConsumerStages() { return this.consumerStages; } - public List<Stage> getFiniteProducerStages() { + public Set<Stage> getFiniteProducerStages() { return this.finiteProducerStages; } - public List<Stage> getInfiniteProducerStages() { + public Set<Stage> getInfiniteProducerStages() { return this.infiniteProducerStages; } diff --git a/src/main/java/teetime/stage/Clock.java b/src/main/java/teetime/stage/Clock.java index e9439886d9c0ac1d5df7d225d43ec46cb49d753f..5cf5375016107c23123f056c047c0517d1b24b97 100644 --- a/src/main/java/teetime/stage/Clock.java +++ b/src/main/java/teetime/stage/Clock.java @@ -1,6 +1,7 @@ package teetime.stage; import teetime.framework.ProducerStage; +import teetime.framework.TerminationStrategy; public class Clock extends ProducerStage<Long> { @@ -9,6 +10,11 @@ public class Clock extends ProducerStage<Long> { private long initialDelayInMs; private long intervalDelayInMs; + @Override + public TerminationStrategy getTerminationStrategy() { + return TerminationStrategy.BY_INTERRUPT; + } + @Override protected void execute() { if (!this.initialDelayExceeded) {