RFR: 8129776: The optimized Stream returned from Files.lines should unmap the mapped byte buffer (if created) when closed

Brian Burkhalter bpb at openjdk.java.net
Tue Jan 26 00:43:51 UTC 2021


Please review this proposed change to unmap the mapped buffer shared between the root and sub-spliterators used in the optimized `Stream` implementation returned by `Files.lines()`. A reference counter is added to track the total number of spliterators sharing the buffer. It is set to 1 when the shared buffer is created, and incremented each time a sub-spliterator is created. It is decremented when traversing begins or when the spliterator is closed. If the counter is zero after it is decremented then the shared buffer is unmapped.

-------------

Commit messages:
 - 8129776: The optimized Stream returned from Files.lines should unmap the mapped byte buffer (if created) when closed

Changes: https://git.openjdk.java.net/jdk/pull/2229/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2229&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8129776
  Stats: 54 lines in 2 files changed: 38 ins; 8 del; 8 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2229.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2229/head:pull/2229

PR: https://git.openjdk.java.net/jdk/pull/2229


More information about the nio-dev mailing list