Am 14.11.2013 um 10:25 schrieb Marcus Denker <marcus.den...@inria.fr>:

> 
> 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