Invariant for default construction
Daniel Murphy via Digitalmars-d
digitalmars-d at puremagic.com
Wed Nov 19 00:46:40 PST 2014
"Rainer Schuetze" wrote in message news:m4eu6v$trq$1 at digitalmars.com...
> I remember having an invariant on a tree structure checking consistency by
> verifying the children and parent references. This crashed when adding a
> destructor. With the proposed change it will always crash.
>
> The problem is that the destructors of the tree nodes are called in
> arbitrary order when they are collected by the GC. Class instances are
> also made invalid after calling the destructor (the vtbl is zeroed).
>
> I wonder if
>
> - such invariants are invalid,
> - the GC should bypass the invariant when calling the destructor
> - or we should never call the invariant with the destructor?
I think the 'correct' solution is to check the invariants before any of the
parts are destroyed.
More information about the Digitalmars-d
mailing list