[Newbies] What is a "weak" reference

Bert Freudenberg bert at freudenbergs.de
Tue Jul 15 13:55:57 UTC 2008

Am 15.07.2008 um 06:42 schrieb Marcin Tustin:

> One of the uses of weak references in other languages is to keep a  
> collection of all the instances of a class without preventing them  
> being garbage collected. Obviously, this is not necessary in squeak.

One major use in Squeak is for ensuring that system resources (such as  
file handles) are released when a file object is garbage-collected.  
Note this is only a fall-back, you should still use #close on files,  
but to prevent resource leakage in odd cases, a weak reference is held  
to each open file.

It's one of the low-level implementation details that exist to make  
the normal live of a Smalltalk programmer simpler. Only the framework  
designer interfacing to non-Smalltalk objects (such as files) needs to  
worry about it. I've never seen a need for weak references in  
application-level code.

- Bert -

More information about the Beginners mailing list