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.