On 02/17/2016 01:17 AM, Kim Barrett wrote:
On Feb 8, 2016, at 5:46 AM, Peter Levart <peter.lev...@gmail.com> wrote:
If special-casing in ReferenceHandler is removed then an opportunity opens to
get rid of ReferenceHandler thread altogether. VM/GC could enqueue Reference(s)
to their respective ReferenceQueue(s) directly, so everyone could enjoy the
benefits sun.misc.Cleaner has…
I don't think that's likely.
That would require the VM/GC to acquire all the queue locks, and we
certainly wouldn't want to do that in a STW pause, so an intermediate
thread is kind of unavoidable. [GC already needs to acquire the
pending list lock, for interaction with the reference queue thread.]
[Or change to lock-free enqueuing and wakeup of waiters, but I think
the current preference would be to avoid pulling even something like
that into a STW phase.]
Yeah, probably this would be to much to do in a STW pause. It's better
to leave as much processing to a background thread as possible because
it can be performed concurrently with application threads.
Regards, Peter