[concurrency-interest] Object finalization

Dr Heinz M. Kabutz heinz at javaspecialists.eu
Tue May 15 16:04:47 EDT 2012


Sure, the fields cannot be null, but would it be possible that they
have already been finalized?

On 15/05/2012, Bob Lee <crazybob at crazybob.org> wrote:
> So there isn't any confusion, the original code is safe without null checks
> in the finalizer. While the finalizer can run concurrently with other
> methods, the JLS
> guarantees<http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.6>that
> the constructor will finish before the finalizer runs: "The completion
> of an object's constructor happens-before (§17.4.5) the execution of its
> finalize method (in the formal sense of happens-before)."
>
> Hans, I used your static volatile pinning trick in an experimental
> ThreadLocal implementation I wrote. :-)
>
> See the "pin" field:
> http://code.google.com/p/google-threadlocal/source/browse/trunk/main/java/lang/ThreadLocal.java
>
> Bob
>


-- 
Dr Heinz M. Kabutz (PhD CompSci)
Author of "The Java(tm) Specialists' Newsletter"
Sun Java Champion
IEEE Certified Software Development Professional
http://www.javaspecialists.eu
Tel: +30 69 75 595 262
Skype: kabutz



More information about the Concurrency-interest mailing list