public IoTasksDispatchCoroutine( final CoroutinesProcessor coroutinesProcessor, final StorageDriverBase<I, O> storageDriver, final BlockingQueue<O> inTasksQueue, final BlockingQueue<O> childTasksQueue, final String stepId, final int batchSize ) { this( coroutinesProcessor, new OptLockArrayBuffer<>(batchSize), storageDriver, inTasksQueue, childTasksQueue, stepId, batchSize ); }
private TransferCoroutine( final CoroutinesExecutor executor, final OptLockBuffer<T> deferredItems, final Input<T> input, final Output<T> output, final int batchSize ) { super(executor, deferredItems); this.input = input; this.output = output; this.deferredItems = new OptLockArrayBuffer<>(batchSize); this.batchSize = batchSize; }
public RoundRobinOutputCoroutine( final CoroutinesExecutor executor, final List<O> outputs, final int buffCapacity ) { super(executor); this.outputs = outputs; this.outputsCount = outputs.size(); this.buffCapacity = buffCapacity; this.buffs = new HashMap<>(this.outputsCount); for(int i = 0; i < this.outputsCount; i ++) { this.buffs.put(outputs.get(i), new OptLockArrayBuffer<>(buffCapacity)); } }