Who wants to have some fun memory debugging?
grauzone
none at example.net
Tue May 12 23:43:53 PDT 2009
Wild guess: there's a false pointer, that keeps one element in the list
from being collected, and because the list-prev pointers are still
there, all following elements won't be collected either in consequence.
If I had time, I'd try two experiments:
1. before freeing everything, reset the prev field of each element; if
this makes the leak go away, my guess would probably be right
2. use the destructor (Data had to be a class) to keep track of how many
elements are actually freed by the GC (just a thread safe counter,
that's incremented in the ctor and decremented in the dtor); just to
find out if this is an internal GC problem, or if you have too many live
garbage
More information about the Digitalmars-d-learn
mailing list