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: [email protected] 
[mailto:[email protected]] On Behalf Of Henrik 
Johansen
Sent: Tuesday, February 02, 2010 5:08 AM
To: [email protected]
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
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>>   
>>     
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
>   

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to