On 14 nov. 2013, at 12:38, Stéphane Ducasse <stephane.duca...@inria.fr> wrote:

> You should look in VM code clement / eliot can reply more precisely
> but the idea is to see when do you accept to suspend a computation. 
> In Smalltlak this is after each message.

Except for #== and inlined message like #ifTrue:ifFalse: , #to:do: , etc... 
See http://forum.world.st/About-and-td3898409.html for more details

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


Reply via email to