Bill,
Bill Pugh wrote:
> At 9:19 PM -0700 4/6/03, Joshua Bloch wrote:
>
>>>
>>>
>>> While the this$0 field of the FinalizerGuardian class will be read,
>>> the finalizerGuardian field of class Foo will never be read, the JVM
>>> should be free to run the finalizer immediately.
>>
>>
>> What about reflection?
>
>
> Not all security managers allow reflective access that violations
> access controls.
What do access controls have to do with it? Suppose *all* access to the
field was via reflection, hence invisible to static analysis. Am I
being dense here? I must be missing something.
>> This contradicts peoples instincts, and will cause all manner of errors.
>
>
> A lot of people's instincts say that Double Checked Locking works, but
> that didn't stop us from deciding to not support it.
Yes, but it violated an underlying principle. I don't see that this
does. Here it looks like we want to support a suspect class of VM
optimizations.
>
> Let's propose we amend JLS 12.6.1 to state clearly that any object
> that is referenced from a field or element of a reachable object is
> reachable.
Sounds fine to me.
>
> Secondly, what about the other ideas I proposed in Saturday's email:
I'm not terribly thrilled with any these. They feel like hacks, and
some have unacceptable limitations (e.g., freeOnceGarbageCollected
presumes you're using some default malloc).
Regards,
Josh
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:43 EDT