connectedComponent.add(task); for (Channel channel : task.getInputChannels()) { if (task.isFeedbackInput(channel)) continue; final ExecutionTask producer = channel.getProducer(); if (tasks.remove(producer)) { if (!consumer.isFeedbackInput(channel) && tasks.remove(consumer)) { stagedTasks.add(consumer);
if (!consumer.isFeedbackInput(channel)) { this.updateRequiredStages(consumer, requiredStages);
if (!consumingTask.isFeedbackInput(channel)) { this.updateRequiredStages(consumingTask, requiredStages);
criterion -> criterion.shouldSplit(task, channel, consumerTask) )) { if (consumerTask.isFeedbackInput(channel)) {
/** * Registers the given {@link ChannelInstance} with appropriate {@link ExecutionStageLoopIterationContext}s. * * @param channelInstance the {@link ChannelInstance} */ public void register(ChannelInstance channelInstance) { final Channel channel = channelInstance.getChannel(); boolean isFeedback = false, isIterationLocal = false; for (ExecutionTask consumer : channel.getConsumers()) { if (consumer.isFeedbackInput(channel)) { isFeedback = true; } else { isIterationLocal = true; } } if (isIterationLocal) this.currentIteration.register(channelInstance); if (isFeedback) this.getOrCreateNextTransition().register(channelInstance); }
for (Channel outboundChannel : outboundChannels) { for (ExecutionTask consumer : outboundChannel.getConsumers()) { if (this.getChannelInstance(outboundChannel, consumer.isFeedbackInput(outboundChannel)) != null) { final ExecutionStage consumerStage = consumer.getStage();