RFR 8243491: Implementation of Foreign-Memory Access API (Second Incubator)
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu Apr 30 18:10:01 UTC 2020
On 30/04/2020 01:06, Peter Levart wrote:
> Think differently: what if the client succeeded in closing the
> segment, just because it did it in a time window when no thread in the
> thread pool held an open scope (this is entirely possible with
> parallel stream for example since threads periodically acquire and
> close scopes). This would have the same effect on threads in the
> thread pool - they would not be able to continue their work... What
> I'm trying to say is that this is just a mechanism to make things
> safe, not to coordinate work. If program wants to avoid trouble, it
> must carefully coordinate work of threads.
This appear to me to be a bit of a slippery slope? Sure, if somebody
prematurely calls close() on a segment while other threads are accessing
it, it could be seen as undefined behavior (a la C specifications ;-) ),
but then, if you pull on the same string, why even bother with
confinement in the first place? If you call close() prematurely and you
get a VM crash that's on you?
Maurizio
More information about the core-libs-dev
mailing list