@Override public void add(T item, ForeachContext<T> ctx) { int tid = ctx.getThreadId(); int idx = getIndex(tid); if (size != null) size.incrementAndGet(); Worklist<T> n = next[idx]; n.add(item, ctx); if (n.size() >= chunkSize) { pool.add(n); next[idx] = n.newInstance(); } }