On Wed, Jul 31, 2013 at 6:31 AM, Henrik Johansen < henrik.s.johansen@veloxit.no> wrote:
On Jul 31, 2013, at 3:23 , Mariano Martinez Peck <marianopeck@gmail.com> wrote:
As far as I know, that's not possible in Pharo unless you explicitly register the desired objects in "WeakRegistry default" or similar (and implement #finalize). I think is the closest you have.
Cheers,
A few clarifications: - You can use a non-default WeakRegistry (usually one specific to your domain, to avoid cluttering of the default one) - You can specify a custom executor (any object which implements #finalize), rather than implement #finalize on objects you're interested in.
obj := Object new. executor := ObjectFinalizer receiver: Transcript selector: #show: argument: 'Object GC''d!'. myReg := WeakRegistry new. myReg add: obj executor: executor. obj := nil. Smalltalk garbageCollect.
Nice!!! I never tried with a different executor nor other instance of WeakRegistry. That's cool. Thanks Henry.
Cheers, Henry
-- Mariano http://marianopeck.wordpress.com