[Newbies] Removing 'dead' instances

Randal L. Schwartz merlyn at stonehenge.com
Sun Sep 28 16:28:48 UTC 2008


>>>>> "Andy" == Andy Burnett <andy.burnett at knowinnovation.com> writes:

Andy> Could some kind soul please explain what I am doing wrong here?
Andy> I have a model, called Fspace, which I have created several instances of,
Andy> whilst I was testing it.

Andy> Fspace allInstances size reports 9 instances.

Andy> When I run

Andy> Fspace allInstancesDo:
Andy>    [:each |
Andy>    each := nil.
Andy> Transcript show: (each value); cr.
Andy>    Smalltalk garbageCollect]

Andy> The transcript shows that the values are set to nil. However, the instances
Andy> don't go away.  So, what am I doing wrong?

Setting "each" to "nil" there does nothing, since you aren't
updating the object that was originally in "each".

You need to tell anyone still holding a reference to your objects
to let go.  Some advice can be found at http://wiki.squeak.org/squeak/2176

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn at stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion


More information about the Beginners mailing list