On Thursday, 21 December 2017 at 02:57:00 UTC, Mike Franklin wrote:
"Don't expect class destructors to be called at all by the GC"

I was a bit shocked to read that here: https://p0nce.github.io/d-idioms/#The-trouble-with-class-destructors

The document tries to clarify with:
"The garbage collector is not guaranteed to run the destructors for all unreferenced objects."

Unfortunately, that doesn't really shed much light on this oddity. So, specifically, under what circumstances are destructors not called?

Thanks,
Mike

When the GC is unaware of a class instance (an "unreferenced object") it won't call its destructor. This happens when you use alternative memory management strategy, for example using Mallocator and make you get an unreferenced object that you have to manage yourself.

Reply via email to