diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index aa6cd42832b8dcab364f9bddd529da517c64a941..733895516966f1ee0f162c258cd45c426cc89fc1 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -138,40 +138,25 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught case BY_SIGNAL: { final RunnableConsumerStage runnableConsumerStage = new RunnableConsumerStage(stage); final Thread thread = new Thread(runnableConsumerStage); - stage.setExceptionHandler(newListener); - for (Stage intraStage : intraStages) { - intraStage.setOwningThread(thread); - intraStage.setExceptionHandler(newListener); - } this.consumerThreads.add(thread); - thread.setUncaughtExceptionHandler(this); - thread.setName(stage.getId()); + + configureThread(newListener, intraStages, stage, thread); break; } case BY_SELF_DECISION: { final RunnableProducerStage runnable = new RunnableProducerStage(stage); final Thread thread = new Thread(runnable); - stage.setExceptionHandler(newListener); - for (Stage intraStage : intraStages) { - intraStage.setOwningThread(thread); - intraStage.setExceptionHandler(newListener); - } this.finiteProducerThreads.add(thread); - thread.setUncaughtExceptionHandler(this); - thread.setName(stage.getId()); + + configureThread(newListener, intraStages, stage, thread); break; } case BY_INTERRUPT: { final RunnableProducerStage runnable = new RunnableProducerStage(stage); final Thread thread = new Thread(runnable); - stage.setExceptionHandler(newListener); - for (Stage intraStage : intraStages) { - intraStage.setOwningThread(thread); - intraStage.setExceptionHandler(newListener); - } this.infiniteProducerThreads.add(thread); - thread.setUncaughtExceptionHandler(this); - thread.setName(stage.getId()); + + configureThread(newListener, intraStages, stage, thread); break; } default: @@ -181,6 +166,16 @@ 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) { + stage.setExceptionHandler(newListener); + for (Stage intraStage : intraStages) { + intraStage.setOwningThread(thread); + intraStage.setExceptionHandler(newListener); + } + thread.setUncaughtExceptionHandler(this); + thread.setName(stage.getId()); + } + /** * This method will start the Analysis and all containing stages. * diff --git a/src/site/markdown/wiki b/src/site/markdown/wiki index 162510ff4d2f04011498ba6920aae0c78347c6c8..0e4474577e1f49bc96e734c286b2d9e0363895e8 160000 --- a/src/site/markdown/wiki +++ b/src/site/markdown/wiki @@ -1 +1 @@ -Subproject commit 162510ff4d2f04011498ba6920aae0c78347c6c8 +Subproject commit 0e4474577e1f49bc96e734c286b2d9e0363895e8