Henry, I would not toss your first thought too quickly. Staying clear of finalization is a big benefit. I have never been able to trust it (for files) on Dolphin, which has a remarkably better implementation of weak collections and finalization than Squeak/Pharo. Bill -----Original Message----- From: pharo-project-bounces@lists.gforge.inria.fr [mailto:pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Henrik Johansen Sent: Tuesday, February 02, 2010 5:08 AM To: pharo-project@lists.gforge.inria.fr Subject: Re: [Pharo-project] readOnlyFileNamed:do: vs. ... Scratch that. It's what I would have done with a fileNamed:do: selector :) The main difference is readOnlyFileNamed:do: does not evaluate the block if file creation returns nil, while the second code errors out with stream dnu setConverterFromCode if the file could not be opened for any reason. Cheers, Henry Den 02.02.2010 11:02, skrev Henrik Johansen:
My guess is he uses a method which does not register the file in FileRegistry, thus avoids a WeakDict cleanup when he closes the file after the block has been evaluated. (eg readOnlyFileNamed:do: vs. readOnlyFileNamed:) Thus, a lot of time is saved from not doing weak registry cleanup. (Which can be a large chunk of the total time when you do many small operations).
Cheers, Henry
Den 02.02.2010 10:50, skrev Stéphane Ducasse:
Nicolas I saw that in squeak you changed and use readOnlyFileNamed:do: I like it but I would like to understand what is the key advantage
fromFileNamed: aName FileStream readOnlyFileNamed: aName do: [:stream | stream setConverterForCode. self fileInFrom: stream]
fromFileNamed: aName | stream | stream := FileStream readOnlyFileNamed: aName. stream setConverterForCode. [self fileInFrom: stream] ensure: [stream close].
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project