On Friday, 13 September 2013 at 15:24:17 UTC, Temtaime wrote:
Hello for all !

I need to call all objects destructors in one place.
It's guaranted, that there is no objects instances.

I tried use GC.collect but it's produces strange results.

import std.stdio;
import core.memory;

class A {
        ~this() { writeln(`dtor`); };
};

void main() {
        auto a = new A;
        a = null;

        GC.collect();
        writeln(`after dtor`);
}

Output is:
after dtor
dtor

Why?

Regards.

this is probably because nothing collected until reference in main function goes from scope. last time i tried GC.collect it wasn't do immediate GC run, AFAIK you can't force it to do so in predictable manner.

Reply via email to