private void iterate()

in drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/turtle/runtime/SubNetworkBenchmark.java [120:140]


    private void iterate(int[] segmentsToVisit, List<Integer> list, List<Map<Long, FactHandle>> handles, List<List<Long>> ids, Task task) {
        int[] intPosArray = new int[segmentsToVisit.length];
        list.clear();
        for (int j = 0; j < segmentsToVisit.length; j++) {
            int segment = segmentsToVisit[j];
            List<Long> idList = ids.get(segment);
            Map<Long, FactHandle> handlesMap = handles.get(segment);
            int intPos = intPosArray[j];
            int batchSize = idList.size();
            for (int k = 0; k < batchSize; k++) {
                task.execute(ksession, handlesMap, idList, intPos + k);
            }
            intPosArray[j] = intPos + batchSize;
            if (perSegmentUpdate) {
                ksession.fireAllRules();
            }
        }
        if (!perSegmentUpdate) {
            ksession.fireAllRules();
        }
    }