Esteban wrote: >you also need to register the object for cleanup, in the WeakRegistry. >(not on my machine, sorry I cannot put an example, but look around)
It is simple and here is an example: Create a class: Object subclass: #Bar instanceVariableNames: 'id' classVariableNames: '' category: 'Foo' implemented an #initialize method initialize super initialize. id := UUID new. Transcript show: 'Initialized ', id printString; cr and implemented a finalization method: finalize Transcript show: 'Finalized ', id printString; cr Now in the workspace I instantiate the object: |anObject| Transcript open; clear. anObject := Bar new. Transcript flush. WeakRegistry default add: anObject. and by forcing garbage collection in a second step I can see that the finalization method is working: 3 timesRepeat: [ Smalltalk garbageCollect ]. Transcript flush. And I get the following output Initialized 4aa47ef1-0e4c-9a47-bddf-b406ee2042e4 Finalized 4aa47ef1-0e4c-9a47-bddf-b406ee2042e4 If it doesnt work check your VM for updates. I'm using Pharo4.0 Latest update: #40442 on Windows with the following VM: Win32 built on Sep 4 2014 01:13:32 Compiler: 4.6.2 VMMaker versionString https://github.com/pharo-project/pharo-vm.git Commit: c7bc23dd6053d5f9934f7dd427537f76fc96eb32 Jenkins build #14851