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();
}
}