Stef, Am 14.11.2013 um 12:10 schrieb Stéphane Ducasse <stephane.ducasse@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 <stephan@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