diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index 733895516966f1ee0f162c258cd45c426cc89fc1..34e7898deb90e1e10f9c37094e786da8999866aa 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -136,27 +136,21 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught newListener = factory.create(); switch (stage.getTerminationStrategy()) { case BY_SIGNAL: { - final RunnableConsumerStage runnableConsumerStage = new RunnableConsumerStage(stage); - final Thread thread = new Thread(runnableConsumerStage); + final RunnableConsumerStage runnable = new RunnableConsumerStage(stage); + final Thread thread = createThread(newListener, intraStages, stage, runnable); this.consumerThreads.add(thread); - - configureThread(newListener, intraStages, stage, thread); break; } case BY_SELF_DECISION: { final RunnableProducerStage runnable = new RunnableProducerStage(stage); - final Thread thread = new Thread(runnable); + final Thread thread = createThread(newListener, intraStages, stage, runnable); this.finiteProducerThreads.add(thread); - - configureThread(newListener, intraStages, stage, thread); break; } case BY_INTERRUPT: { final RunnableProducerStage runnable = new RunnableProducerStage(stage); - final Thread thread = new Thread(runnable); + final Thread thread = createThread(newListener, intraStages, stage, runnable); this.infiniteProducerThreads.add(thread); - - configureThread(newListener, intraStages, stage, thread); break; } default: @@ -166,7 +160,8 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught } - private void configureThread(final AbstractExceptionListener newListener, final Set<Stage> intraStages, final Stage stage, final Thread thread) { + private Thread createThread(final AbstractExceptionListener newListener, final Set<Stage> intraStages, final Stage stage, final AbstractRunnableStage runnable) { + final Thread thread = new Thread(runnable); stage.setExceptionHandler(newListener); for (Stage intraStage : intraStages) { intraStage.setOwningThread(thread); @@ -174,6 +169,7 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught } thread.setUncaughtExceptionHandler(this); thread.setName(stage.getId()); + return thread; } /** diff --git a/src/site/markdown/wiki b/src/site/markdown/wiki index 0e4474577e1f49bc96e734c286b2d9e0363895e8..162510ff4d2f04011498ba6920aae0c78347c6c8 160000 --- a/src/site/markdown/wiki +++ b/src/site/markdown/wiki @@ -1 +1 @@ -Subproject commit 0e4474577e1f49bc96e734c286b2d9e0363895e8 +Subproject commit 162510ff4d2f04011498ba6920aae0c78347c6c8