[Newbies] Do I need to close a FileStream?

Bert Freudenberg bert at freudenbergs.de
Sun Mar 25 10:30:02 UTC 2007


On Mar 24, 2007, at 17:41 , Tim Johnson wrote:

>
> On Mar 24, 2007, at 3:45 AM, Kyle Hamilton wrote:
>
>> The underlying OS has only a certain number of file handles that it
>> can maintain open at a time.  On UNIX-like systems, there is also
>> possibly a maximum number of files per process.  If this limit is  
>> hit,
>> then no additional files can be opened, and on any attempt to do  
>> so an
>> error is returned.
>
> For some reason I was confused and thought that Squeak's garbage  
> collector would somehow make me immune from this.  Like when the  
> file was no longer being used, it would be closed and purged.

Actually it is indeed. We use finalization for this [*]. However, you  
cannot know _when_ an object actually will be finalized, so you may  
be eating up handles nontheless.

> Now I know otherwise :)

It's good practice not to rely on finalization, but treat it as a  
safety net.

- Bert -

[*] See for example
http://www.mail-archive.com/beginners@lists.squeakfoundation.org/ 
msg01719.html
or
http://www.google.com/search?q=squeak+finalization


More information about the Beginners mailing list