RFR: 8324972: (bf) Make DirectByteBuffer.Deallocator idempotent [v4]

Mark Sheppard msheppar at openjdk.org
Wed Feb 21 19:35:59 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

I'm refering to the safe publication of Deallocator via the Cleaner.create code ... the Deallocator reference is stored in a final field in the Cleaner, and the Cleaner is published via a synchronzied method, which I think would represent safe publication of the Deallocator (prior to it being turned into a record) ?

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

PR Comment: https://git.openjdk.org/jdk/pull/17647#issuecomment-1957761386


More information about the nio-dev mailing list