ts <decoux / moulon.inra.fr> [2004-07-31 13:06]:
> >>>>> "T" == Tilman Sauerbeck <tilman / code-monkey.de> writes:
> 
> T> Yeah. Although if I make the parent object (the XmmsClient, 'o') know
> T> about (and mark) the Result objects, I've got a circular reference,
> T> since the result objects mark their parent, which is 'o'.
> 
>  Circular reference is not a problem because the GC is a mark-sweep GC.
> 
> [code]
>  `bdb' will mark `aux' and `aux' will mark `bdb'
> 
>  When the GC run, it will not mark `bdb' because it has no reference to it,
>  and it will not mark `aux' for the same reason. At the sweep phase, `bdb'
>  and `aux' are removed (closed in this case)

Ah, so the GC might omit the call to the mark callback before the free
callback is called? Until now I thought the mark function was always
executed.

So far my objects only marked the objects they depend upon, their
parents so to say. I'll change this so they mark all the objects they
get in touch with =)

Thank you :)

-- 
Regards,
Tilman