RFR: 8324972: (bf) Make DirectByteBuffer.Deallocator idempotent [v4]
Alan Bateman
alanb at openjdk.org
Thu Feb 8 15:33:04 UTC 2024
On Thu, 8 Feb 2024 10:58:05 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 two additional commits since the last revision:
>
> - Use existing UNSAFE static variable
> - Remove unused import
There is no explicit free for direct buffers (or unmap for mapped buffers) and the Cleaner action to free/unmap will only be run once in response to reference processing. The only scenario that I can come up is using Unsafe.invokeCleaner where it looks like we might be missing a RF to keep the DBB alive. I will look further to see if I can see anything else.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17647#issuecomment-1934374929
More information about the nio-dev
mailing list