RFR: 8324972: (bf) Make DirectByteBuffer.Deallocator idempotent [v3]
Mark Sheppard
msheppar at openjdk.org
Wed Jan 31 17:53:03 UTC 2024
On Wed, 31 Jan 2024 16:44:17 GMT, Per Minborg <pminborg at openjdk.org> wrote:
>> This PR proposes to make deallocators and unmappers for memory regions idempotent. This is to prevent (likely very rare) duplicate invocations.
>>
>> There are no unit tests but it should be noted that the idempotent behavior (now correct) is similar to the intended behavior before cf74b8c2a32f33019a13ce80b6667da502cc6722 but where idempotency was not guaranteed in a multi-threaded environment.
>>
>> Passes tier1, 2, and 3 tests.
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
>
> Swith to using Unsafe
src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template line 82:
> 80: private static final class Deallocator implements Runnable {
> 81:
> 82: private static final long INVOKED_OFFSET = Unsafe.getUnsafe()
There are two invocations of Unsafe.getUnsafe introduced here, while the base class Buffer has initialised the static UNSAFE (i.e. the reference used for freeMemory.) Could this static be used to replace Unsafe.getUnsafe ?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17647#discussion_r1473227017
More information about the nio-dev
mailing list