/** * Creates a new Build step based on this builder but with a nested parallel protocol * producer inserted into the original protocol producer. * * @param f of the protocol producer - will be lazy evaluated */ public <R> BuildStep<Void, BuilderT, R> par(ComputationParallel<R, BuilderT> f) { FrescoLambda<Void, BuilderT, R> innerBuilder = (inner, ignored) -> f.buildComputation(inner); BuildStep<Void, BuilderT, R> builder = new BuildStep<>(new BuildStepSingle<>(innerBuilder, true)); createAndAppend(new LazyProtocolProducerDecorator(() -> builder.createProducer(null, factory))); return builder; } }