garbage collection & use for delete

Brad Roberts braddr at puremagic.com
Sun Mar 5 14:48:36 PST 2006


On Sun, 5 Mar 2006, akcom wrote:

> As I currently understand it, "deleting" an object simply marks it as ready
> for deletion when the garbage collector makes its period sweeps. After
> skimming through the phobos std source, I saw very VERY little use of the
> delete keyword, especially in regards to classes.  My question is, how does
> the gc know when those classes are no longer being referenced? Also, are the
> explicit delete's I'm using on .dup'ed strings, classes, etc useless?

I'm fairly sure your understanding is wrong.  You don't have to explicitly 
delete objects and they will be cleaned up at some point by the garbage 
collector (though that's not guaranteed in the face of things like the 
program exiting).  However, if you explicitly delete something, it's 
destructor is called right then and there and the memory becomes available 
for reuse immediately.

The docs on this are incomplete, imho, so I'll file a bug asking that they 
be elaborated upon:

    http://www.digitalmars.com/d/expression.html#DeleteExpression

Later,
Brad



More information about the Digitalmars-d-learn mailing list