thanks it would be so good to have such information in class comments. On Jun 10, 2013, at 5:38 AM, Eliot Miranda <[email protected]> wrote:
> > > On Fri, Jun 7, 2013 at 1:24 PM, Stéphane Ducasse <[email protected]> > wrote: > Hi eliot > > probably a really stupid question. > But why count the number of finalization would have a link with the size? > > The size can only change when a) an element is added or removed, or b) when > something is finalized. a) adjusts the tally, b) does not. So invalidating > the size on b) means that it will always be recomputed if finalization > affects the size. > > Is there an invariant that would mean that there is a one one relations > between object in the set and their garbage collection. > I mean if two objects of the same weakset are garbage collected will the > finalization process runs twice > > No. Finalization runs once after each GC that finalizes something. i.e. the > GC runs, and if it deletes one or more elements from any of the weak > collections in the system it signals the finalization semaphore. So the > finalization loop runs once for each GC that finalizes at least one weak > collection. If a GC finalizes many weak collections the finalization loop > still runs only once for the GC. > > I did not look at the class comment because may be it explains it and now I > 'm dead. > > Stef > > > > -- > best, > Eliot
