[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