[Pharo-project] readOnlyFileNamed:do: vs. ...

Henrik Johansen henrik.s.johansen at veloxit.no
Tue Feb 2 05:07:56 EST 2010


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 at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>>   
>>     
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
>   




More information about the Pharo-dev mailing list