Destructor/Finalizer Guarantees

thedeemon via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Nov 12 03:50:30 PST 2014


On Wednesday, 12 November 2014 at 04:06:11 UTC, Algo wrote:

> Could this work?
>
> class VM {
>     static List[VM*] _gcRootLists;
>     List* gcRootList;
>     ~this() {
>         _gcRootLists.remove(&this);

No. Hash-table operations may try to allocate or free memory 
which is not allowed during a GC cycle where the destructors are 
called. It will just cause InvalidMemoryOperationError and the 
program will exit abnormally.



More information about the Digitalmars-d-learn mailing list