On Wed, Apr 1, 2015 at 9:49 AM, Tobias Pape <Das.Linux@gmx.de> wrote:

On 01.04.2015, at 18:37, Eliot Miranda <eliot.miranda@gmail.com> wrote:

> On Wed, Apr 1, 2015 at 6:27 AM, Bert Freudenberg <bert@freudenbergs.de> wrote:
>
> On 31.03.2015, at 23:10, Eliot Miranda <eliot.miranda@gmail.com> wrote:
>>
>> I'm not sure the other ways are any better.  The way to transfer to a context without disturbing its stack is to do a process switch.
>> [...]
>>   One of the advantages the process switch versions have is in not updating the receiving context sp there's a chance the context-to-stack mapping machinery won't flush the context to the heap.  In the end it might actually be faster.
>
> I would find it very surprising if #jump would result in the execution continuing in a different process.
>
> That's not what they do.  Instead they spawn another process to position the process in which we want to jump correctly.

We don't want to jump to a process but within a process, like a goto…

Well, jump doesn't do unwinds so the code should be simply:

jump
"Abandon thisContext and resume self instead (using the same current process)."
| process |
process := Processor activeProcess.
[process suspendedContext: self] fork.
Processor yield

What about thread/process-local variables?
 
Happy now? 
--
best,
Eliot