@Override
        public long estimateSize() {
            return buffering // volatile-read (ensures buffer is up-to-date)
                  ? estimateSizeDuringBuffering() // slow (synchronized)
                  : numberOfElementsLeftInBuffer(); // fast (not synchronized)
        }
Called only when buffering has been completed.
jOOL/src/main/java/org/jooq/lambda/SeqBuffer.java