Note that it would be good to have a special syntactic construct for that 
because now
we rely on the way the compiler works to ensure such properties and it means 
that 
an accessor and a direct access are not semantically equals.


Stef


>> On 14 Nov 2013, at 10:15, Stephan Eggermont <step...@stack.nl> wrote:
>> 
>>> Reading this code, made me wonder what operations are actually atomic.
>>> Anyone having a good explanation?
>>> 
>>> Stephan
>>> 
>>> AtomicQueueItem>makeCircular
>>>     "Make a receiver circular, i.e. point to itself,
>>>     answer the old value of next variable. 
>>>     Note, this operation should be atomic"
>>>     
>>>     | temp |
>>> 
>>>     " atomic swap here"
>>>     temp := next.
>>>     next := self.
>>> 
>>>     ^ temp
>>> 
>> -> no message send
>> -> no back jump bytecode
>> 
>> therefore it can not be interrupted and process switches can not happen 
>> between the statements.
> 
> Thanks, I learn something new every day. I’ve never thought about the 
> condition when a process switch can happen. Can you say in short when a 
> switch of processes is checked? Because I think I won’t finding it in a 
> reasonable time looking myself.
> 
> Norbert
> 
> 


Reply via email to