[Pharo-project] Process-specific state broken and uncomplete
leves at elte.hu
Tue Nov 9 02:31:47 CET 2010
On Mon, 8 Nov 2010, Igor Stasenko wrote:
> 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?
> 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
> 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:
> 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