From: Eric Hodel Date: 2007-12-22T05:12:03+09:00 Subject: Re: First stab at a weakref test suite On Dec 21, 2007, at 05:50 AM, Charles Oliver Nutter wrote: > Eric Hodel wrote: >> On Dec 20, 2007, at 21:45 PM, Daniel Berger wrote: >>> I follow the same pattern in the tests, but it doesn't raise the >>> expected error. Any ideas? >> Since the GC is conservative, references may exist longer than you >> expect because the item that should be collected is still >> referenced from the stack. I don't know of an easy way around this. > > This is probably the largest reason why a weakref suite will be a > little tricky. My best recommendation would be to loop calling > GC.start until the reference gets collected; perhaps with an upper > count... "if we reach 1000 iterations and it's not collected, it > isn't working". If it isn't collected after 1, I doubt it will be collected after 1000. You'd have better luck manipulating the stack (calling methods recursively that eventually allocate things), but you're still not guaranteed that any object will be collected when you want with ruby 1.8 or 1.9.