RFR: 8324972: (bf) Make DirectByteBuffer.Deallocator idempotent [v4]
Mark Sheppard
msheppar at openjdk.org
Thu Feb 15 17:01:00 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
forget concurrency, forget idempotency, forget safe publication across threads etc.
Ask the question what is the Deallocator state representing ... it is encapsulating a native memory address that should be freed by an os::free, and when that has been successfully executed, its state should show that referenced address should no longer be freed, becuse that potential side effects.
That's a simple and precise propsition.
Why are you trying to justify the use of a record to represent Deallocator state as immutable, when that state is not immutable
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17647#issuecomment-1946584406
More information about the nio-dev
mailing list