Skip to content
Snippets Groups Projects
Commit 36b0dae6 authored by Nelson Tavares de Sousa's avatar Nelson Tavares de Sousa
Browse files

every stage knows now the thread in which it is running

parent 6c6a9133
No related branches found
No related tags found
No related merge requests found
......@@ -15,8 +15,6 @@
*/
package teetime.framework;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -28,7 +26,6 @@ import teetime.framework.signal.TerminatingSignal;
abstract class AbstractRunnableStage implements Runnable {
private final AbstractExceptionListener exceptionHandler;
private Set<Stage> intraStages;
private static final String TERMINATING_THREAD_DUE_TO_THE_FOLLOWING_EXCEPTION = "Terminating thread due to the following exception: ";
......@@ -91,11 +88,4 @@ abstract class AbstractRunnableStage implements Runnable {
protected abstract void afterStageExecution(Stage stage);
public Set<Stage> getIntraStages() {
return intraStages;
}
public void setIntraStages(final Set<Stage> intraStages) {
this.intraStages = intraStages;
}
}
......@@ -137,27 +137,30 @@ public final class Analysis<T extends AnalysisConfiguration> implements Uncaught
switch (stage.getTerminationStrategy()) {
case BY_SIGNAL: {
final RunnableConsumerStage runnableConsumerStage = new RunnableConsumerStage(stage, newListener);
runnableConsumerStage.setIntraStages(intraStages);
final Thread thread = new Thread(runnableConsumerStage);
stage.setOwningThread(thread);
for (Stage intraStage : intraStages) {
intraStage.setOwningThread(thread);
}
this.consumerThreads.add(thread);
thread.setName(stage.getId());
break;
}
case BY_SELF_DECISION: {
final RunnableProducerStage runnable = new RunnableProducerStage(stage, newListener);
runnable.setIntraStages(intraStages);
final Thread thread = new Thread(runnable);
stage.setOwningThread(thread);
for (Stage intraStage : intraStages) {
intraStage.setOwningThread(thread);
}
this.finiteProducerThreads.add(thread);
thread.setName(stage.getId());
break;
}
case BY_INTERRUPT: {
final RunnableProducerStage runnable = new RunnableProducerStage(stage, newListener);
runnable.setIntraStages(intraStages);
final Thread thread = new Thread(runnable);
stage.setOwningThread(thread);
for (Stage intraStage : intraStages) {
intraStage.setOwningThread(thread);
}
this.infiniteProducerThreads.add(thread);
thread.setName(stage.getId());
break;
......
wiki @ 162510ff
Subproject commit 0e4474577e1f49bc96e734c286b2d9e0363895e8
Subproject commit 162510ff4d2f04011498ba6920aae0c78347c6c8
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment