RFR: 8287788: reuse intermediate segments allocated during FFM stub invocations [v9]

Matthias Ernst duke at openjdk.org
Wed Jan 22 12:30:39 UTC 2025


On Wed, 22 Jan 2025 10:40:07 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

>> Matthias Ernst has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   --unnecessary annotations
>
> src/java.base/share/classes/jdk/internal/foreign/abi/BufferStack.java line 17:
> 
>> 15: 
>> 16:     public Arena reserve(long size) {
>> 17:         if (!lock.tryLock()) {
> 
> I believe we only need to lock if `reserve` is called from a virtual thread. So there's more cases where the locking can be avoided :-)

Done. Also can avoid the recursion (although that's probably cheap under RL, let me double-check).

> src/java.base/share/classes/jdk/internal/foreign/abi/BufferStack.java line 52:
> 
>> 50:             scope.close();
>> 51:             offset = parentOffset;
>> 52:             lock.unlock();
> 
> I believe you could have mismatched lock/unlock in some cases

Which scenario?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23142#discussion_r1925238375
PR Review Comment: https://git.openjdk.org/jdk/pull/23142#discussion_r1925236864


More information about the core-libs-dev mailing list