[squeak-dev] Reassessing the hack in WriteStream>>nextChunkPut: (was: Squeak 4.6 release update)

Levente Uzonyi leves at elte.hu
Sun Mar 8 19:43:43 UTC 2015


On Sun, 8 Mar 2015, Tobias Pape wrote:

> Hi,
>
> thanks for taking the time to check!
>
>
> On 08.03.2015, at 20:03, Levente Uzonyi <leves at elte.hu> wrote:
>
>>
>> #flush is pretty costly, and IMO it's called way too often if it's in
>> #nextChunkPut:. The most common workaround to avoid frequent calls is to use InMidstOfFileinNotification to check if it's a bulk write, and flush only once in those cases. For some reason this technique is not used in case of class comments.
>> I changed the last lines of ClassDescription >> #classComment:stamp: in my image to
>>
>> 	self organization classComment: (RemoteString newString: aString onFileNumber: 2) stamp: aStamp.
>> 	InMidstOfFileinNotification signal ifFalse: [file flush].
>> 	SystemChangeNotifier uniqueInstance classCommented: self.
>>
>> Then removed the #flush from WriteStream >> #nextChunkPut:, and it seems to me that the problem is gone.
>
> Can you tell me whether the Changes file is read/written via one stream or two?
> I understood its  two file descriptors but are these two in different streams or
> the same stream?

Of course, those are two (or more) different streams. We use SourceFiles 
at: 2 for writing and CurrentReadOnlySourceFiles at: 2 for reading.

Levente

>
> Best
> 	-Tobias
>
>
>


More information about the Squeak-dev mailing list