On 12/12/16 15:11, Uwe Schindler wrote: > Thanks for taking care! Your proposal is still the "volatile only > during safepoint" idea? I remember our discussions last FOSDEM and > this is why I brought it up in this mail thread (see my original > mail referring to your name).
It's the same idea. It's occurred to me that the ability to have a field write that is only guaranteed to be visible to all threads after a safepoint is a more generally useful idea than just something for mapped ByteBuffers. So, my current plan (such as it is) involves creating a new kind of VarHandle read, and this is a new public API, etc. > I was aware, that Java 10 would be a good place for the "correct fix > that no longer relies on GC". For Java 9, we should go the current > route and add the Unsafe method to forcefully unmap. The new unmap > method is now needed, because the recent Jigsaw enhancements make it > completely impossible to do setAccessible on JDK modules by default > so the internal Cleaner is unreachable. Lucene is happy to get a > "dirty workaround" for Java 9 and we can then wait for Java 10 where > we get a public close() method on MappedByteBuffer / DirectBuffer. Sure, I get that. It's a bit unfortunate, but getting it done for JDK 9 was always going to have been a stretch, Andrew.