Order of destruction when garbage collection kicks in

Henning Pohl henning at still-hidden.de
Tue Apr 9 12:55:09 PDT 2013


In fact there is no order of destruction. And this is one of the 
most annoying D problems I recently had to deal with. Look at 
this example: http://dpaste.dzfl.pl/f3f860b0. This time, it 
segfaulted. Next time it may (in theory) not, because the dtor of 
a is called before the one of b. A holds a reference to a B. In 
the destructor of A I expect b either to be null or a valid 
instance of B (which has not been destroyed yet). You get a kind 
of undefined behavior instead. This is IMO a huge drawback 
towards reference counting with strong/weak references.

Is there right now any way to arrange things?


More information about the Digitalmars-d mailing list