RFR: 8207851 JEP Draft: Support ByteBuffer mapped over non-volatile memory
Andrew Dinn
adinn at redhat.com
Thu Feb 21 12:02:47 UTC 2019
The latest JEP and draft implementation now address the 3 outstanding
issues:
1) 2-arg force method now uses integer start offset and length
force(int from, int length)
2) length is checked against buffer limit rather than capacity
3) start position and length checks are implemented using
Objects.checkFromIndexSize. In consequence, force(int,int) now throws
IOOBE. I updated the JEP and javadoc to record this.
JEP: http://openjdk.java.net/jeps/8207851
webrev: http://cr.openjdk.java.net/~adinn/pmem/webrev.06
I also made one small, additional correction to the implementation.
When force(int,int) is called with a non-SYNC buffer it is expected to
redirect to force0. The address arg passed in this call was being
computed by adding the supplied offset to buffer start address. However,
the underlying implementation of force0 calls msync which requires a
page-aligned address.
The latest version rounds down the computed address to a page boundary.
It also increments length by the amount thus subtracted, ensuring all
the bytes in the requested range are written back.
regards,
Andrew Dinn
-----------
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander
More information about the core-libs-dev
mailing list