[Pharo-project] Process-specific state broken and uncomplete

Levente Uzonyi leves at elte.hu
Tue Nov 9 02:31:47 CET 2010


On Mon, 8 Nov 2010, Igor Stasenko wrote:

> Hello,
>
> i just found that Squeak images Process class contains unused ivars:
> island env

IIRC those were added by Matthew Fulmer to support ProcessSpecific _and_ 
Cobalt. The idea is that the two can be used together this way, because 
the definition of Process doesn't have to be changed.

>
> in Pharo image, env ivar is used for holding a process-specific state,
> which is convenient, so one could use:
> Processor activeProcess environmentAt: put:...
>
> but in Squeak image there is even no such methods.

So they integrated the full ProcessSpecific package. Is it a problem that 
you have to load it into Squeak?


Levente

>
> There are also some caveats with such thing:
> during process termination, Processor activeProcess could point to
> different process,
> and so, accessing to process environment may lead to error(s).
>
> To avoid issues like these, the process termination action (stack
> unwinding) should be always performed only for active process.
> One of a trick i think, is to replace the suspendedContext with own
> context, and then activate given process in order to unwind its stack
> etc.
>
> Another way is to remember environment somewhere else during process
> termination, and use different method to access it i.e. instead of:
> Processor activeProcess environmentAt:
> use
> self processEnvironmentAt:
>
> where #processEnvironmentAt: is implemented in Object class, and can
> handle termination gracefully.
>
> But i think replacing suspendedContext is more generic.
> What you think?
>
> -- 
> Best regards,
> Igor Stasenko AKA sig.
>
>




More information about the Pharo-project mailing list