At 03:05 PM 27/05/2004 -0700, Jerry Schwarz wrote:
>Yes I understood that. What I was trying to say was that I don't think we
>want to provide the transitive guarantees for inner classes. I agree that
>the compiler must guarantee that the correct value of the implicit pointer
>(i.e. this$0) is always seen. What I disagree with is the idea that
>because we need that guarantee it makes sense to give the stronger
>transitive closure guarantee for the rest of the actions of the Inner
>With regards to this$0 itself I would want a very strong guarantee. Namely
>that it is never seen to be null.
The JVM does not know about inner classes, so the option of guaranteeing
the visibility of the write to the this$x field, without its being final or
volatile, does not exist. Of the two, final makes more sense to me, and
seems likely to have a lower cost.
On this basis, my example is largely irrelevant. The real issue is the
NullPointerException scenario that Bill highlighted.
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:01:08 EDT