From 7ac290da14d78e8dda201a5f4b6b38816cdf0cdd Mon Sep 17 00:00:00 2001
From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de>
Date: Fri, 7 Nov 2014 14:01:31 +0100
Subject: [PATCH] Set clock stage terminationstrategy

---
 .../teetime/framework/AnalysisConfiguration.java   | 14 ++++++++------
 src/main/java/teetime/stage/Clock.java             |  6 ++++++
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java
index 67eb52d9..43441012 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 e9439886..5cf53750 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) {
-- 
GitLab