Multiple processes using #nextPutAll:

Bert Freudenberg bert at freudenbergs.de
Sat May 26 14:55:21 UTC 2007


On May 26, 2007, at 16:45 , Klaus D. Witzel wrote:

> On Sat, 26 May 2007 16:37:44 +0200, I wrote:
>> Hi Bert,
>>
>> on Sat, 26 May 2007 16:22:30 +0200, you wrote:
>>
>>> On Sat, 26 May 2007 14:12:59 +0200, Damien Cassou wrote:
>>>> Thank you for this comments. That was what I was afraid of. Is it
>>>> possible to have test that will show #nextPutAll: is not protected?
>>>
>>> I'm not convinced #nextPutAll: should be atomic. It would mean a  
>>> consumer cannot start processing queued items before all elements  
>>> are written. Right now, #nextPutAll: uses #nextPut:
>>
>
> Sorry, this should read:
>> In the example Damien used in this thread and in the  
>> implementation of
> Say Damien used String in his examples ...
>
> /Klaus
>
>> #nextPutAll: in Nile and the classic WriteStream on String,  
>> #nextPut: is not used by #nextPutAll:.
>>
>> Instead, #nextPutAll: updates at least one or more instance  
>> variables (besides appending the elements of the argument). This  
>> all together must be atomic, otherwise the system will be blown up.

I thought we were talking about SharedQueue. Both in 3.8 and  
SharedQueue2 in 3.9 use #nextPut:.

- Bert -





More information about the Squeak-dev mailing list