Destructor nonsense on dlang.org

Michael pr at m1xa.com
Tue Nov 12 15:13:03 PST 2013


On Friday, 25 May 2012 at 14:35:58 UTC, Andrei Alexandrescu wrote:
>
> What happens in C# if an object A that has a field referring to 
> object B, and the object B has in turn a field referring to 
> object A? That is:
>
> class C { C another; ~this() { writeln(another.another); } }
>
> void main() {
>     auto a = new C;
>     auto b = new C;
>     a.another = b;
>     b.another = a;
> }
>
> What happens then? Will the GC nullify references to destroyed 
> objects, or will it put them in a zombie state?
>
>
> Thanks,
>
> Andrei

In this case the a and b objects will be collected by GC and 
memory freed.
It's a one of most popular questions about .NET GC. Maybe 
something was changed in .NET >= 4.5.

I have another question: there available a good example of 
idiomatic destructor usage in the D?
Something without calling a rt_ hooks on destroy?


More information about the Digitalmars-d mailing list