[concurrency-interest] Object finalization

David Holmes davidcholmes at aapt.net.au
Sun May 13 18:28:26 EDT 2012


The objects referred to by 'a' and 'b' will remain finalizer-reachable until
after the finalizer runs and so can not be reclaimed. If they were to be
reclaimed it would require that all references to them in finalizable
objects be found and cleared, which is not practical.

With regard to the OP, as long as the constructor completes normally, it is
guaranteed that neither 'a' nor 'b' will be null when the finalizer runs.

David
  -----Original Message-----
  From: concurrency-interest-bounces at cs.oswego.edu
[mailto:concurrency-interest-bounces at cs.oswego.edu]On Behalf Of Vitaly
Davidovich
  Sent: Monday, 14 May 2012 8:20 AM
  To: Bob Lee
  Cc: concurrency-interest at cs.oswego.edu
  Subject: Re: [concurrency-interest] Object finalization


  perhaps I'm misremembering but there's no guarantee on the order in which
objects are reclaimed.  When SomeService finalizer runs and assuming a and b
were kept alive only by this instance of SomeService, I don't think there's
any guarantee that a and b have not been reclaimed at this point already.
That's how the CLR finalization works, so perhaps I'm conflating the two.

  Sent from my phone

  On May 13, 2012 5:54 PM, "Bob Lee" <crazybob at crazybob.org> wrote:

    On Sun, May 13, 2012 at 2:41 PM, Vitaly Davidovich <vitalyd at gmail.com>
wrote:

      I am unclear whether the original question is specifically about
reachability of a and b from the constructor or whether the constructor was
shown to us to indicate that a and b are never null after construction
(assuming asserts are enabled).  If it's the former, your answer is correct
(that's what I meant by saying not sure if your reply was answering the
question).  If it's the latter, then I'm pretty sure my response is correct

    Again, according the JLS, you're incorrect. "a" and "b" will be non-null
when SomeService.finalize() executes. Why would you think otherwise?

    Bob
    Square is hiring!



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20120514/8f2db91e/attachment.html>


More information about the Concurrency-interest mailing list