digitalmars.D.learn - garbage collection & use for delete
- akcom (7/7) Mar 05 2006 As I currently understand it, "deleting" an object simply marks it as
- Brad Roberts (12/18) Mar 05 2006 I'm fairly sure your understanding is wrong. You don't have to explicit...
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?
Mar 05 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
Mar 05 2006