Reference.reachabilityFence
mark.reinhold at oracle.com
mark.reinhold at oracle.com
Tue Nov 24 17:08:32 UTC 2015
2015/11/24 1:32 -0800, paul.sandoz at oracle.com:
>> On 24 Nov 2015, at 01:31, mark.reinhold at oracle.com wrote:
>> This seems eminently reasonable, but why does it belong in the
>> java.lang.ref.Reference class? It has nothing (directly) to do
>> with reference objects.
>>
>> java.lang.Runtime, perhaps?
>
> Out of all the places i thought Reference was the least indirect. The
> method documentation refers to the notion of "strongly reachable” in
> the j.l.ref package doc (I should update to link directly to that). In
> effect it’s an operation on potential referents that relates to
> reachability, garbage collection and finalization.
>
> A further weaker argument is Reference is not commonly used thus there
> may be less chance of this method being misused.
>
> I do prefer the current location, but i don’t strongly object to
> moving it to Runtime.
Having read through more of the background, I now agree that the
Reference class is a suitable home for this method. Most anyone who
needs this method will already be thinking about finalization and/or
reference objects.
I do think "keepAlive" is a better name, especially since there are
(at present) no other "*Fence" methods in sight.
A few more questions/suggestions:
- This method started out (way back in 2009, on concurrency-interest)
as part of a more general java.util.concurrent.Fences class [1].
Do we have any expectation that Fences will ever be proposed for
inclusion in the platform, or is it something that's otherwise
abandoned?
- The specification, while short, needs some work. As far as I can
tell the scope of the guarantee made by this method does not extend
beyond that of the method that invokes it, yet the specification
says "regardless of any prior actions of the program", which is
almost certainly too broad.
- Is it worth including one or both of the examples from the original
Fences draft?
- Mark
[1] http://gee.cs.oswego.edu/dl/jsr166/dist/docs/java/util/concurrent/atomic/Fences.html
More information about the hotspot-compiler-dev
mailing list