Stef, Am 14.11.2013 um 12:10 schrieb Stéphane Ducasse <stephane.duca...@inria.fr>:
> 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. > I was asking for pointers/locations where to look at. I like to wrap my head around it in order to understand how it works and thus figuring out where and when there is a problem. Norbert > > 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 >> >> > >