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