RFR 8243491: Implementation of Foreign-Memory Access API (Second Incubator)

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Wed Apr 29 20:40:21 UTC 2020


On 29/04/2020 08:10, Peter Levart wrote:
> Right, as you saw in a private Email, I did exactly that in a revised 
> version (posted below). The spurious ISE may happen but only when 
> close is called prematurely relative to all child scope close(s) that 
> were or are still active. So we could say the other way: if close was 
> not called prematurely, the ISE on acquire would not be spurious - so 
> ordering of close relative to later acquire was wrong anyway and the 
> exception is an "indication" of that wrong ordering
>
> Unless we want to use close() to "probe" the scope whether it is still 
> active or not, I don't think this should present a problem.

One quick comment: unless I'm missing something, this is starting to 
make a pretty strong assumption on how acquire()/close() are going to be 
used. Yes, if acquire() is not exposed to developers (as in the current 
API) and only hidden behind a spliterator, we might get away with this; 
but should we at some point re-introduce some kind of explicit acquire 
mechanism in the API, then such an assumption would not be a fine one to 
make.

Maurizio



More information about the core-libs-dev mailing list