Inconsistent consumer/producer declaration
Currently, the runnable stage is chosen according to the termination strategy:
static AbstractRunnableStage create(final Stage stage) {
if (stage.getTerminationStrategy() == TerminationStrategy.BY_SIGNAL) {
return new RunnableConsumerStage(stage);
} else {
return new RunnableProducerStage(stage);
}
}
However, this is wrong. A consumer may decide on its own although it has input ports.