On Thu, 23 Jan 2025 12:50:41 GMT, Matthias Ernst <[email protected]> wrote:
>> So:
>> * the shared memory segment is confined on the carrier thread
>> * allocation requests need to reinterpret segment slices to the arena (which
>> is associated with the requesting thread, not the carrier)
>> * my understanding is that the terminating action will be executed on the
>> same carrier thread (so closing the confined arena should be ok)
>
>> the shared memory segment is confined on the carrier thread
>
> But is it? When the CarrierThreadLocal is initialized, we may be executing in
> a VT and Arena.ofConfined will confine to it. We'd need something like an
> Arena.ofCarrierConfined() to make that work.
I mean, it is totally possible:
public PerThread(long size) {
this.arena =
MemorySessionImpl.createConfined(JLA.currentCarrierThread()).asArena();
this.stack = new SlicingAllocator(arena.allocate(size));
}
public void close() {
arena.close();
}
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23142#discussion_r1926940819