@Override
    public Traverser.Admin<S> processNextStart() {
        if (this.traverserSet.isEmpty() && this.starts.hasNext()) {
            this.processAllStarts();
            this.barrierConsumed = false;
        }
        //
        if (!this.barrierConsumed) {
            this.barrierConsumer(this.traverserSet);
            this.barrierConsumed = true;
        }
        return ProjectedTraverser.tryUnwrap(this.traverserSet.remove());
    }
@author Marko A. Rodriguez (http://markorodriguez.com)
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/CollectingBarrierStep.java