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

Igor Stasenko siguctua at gmail.com
Tue Nov 9 07:17:45 CET 2010


On 9 November 2010 08:06, Philippe Marschall <kustos at gmx.net> wrote:
> On 08.11.2010 06:39, Igor Stasenko wrote:
>> Hello,
>>
>> i just found that Squeak images Process class contains unused ivars:
>> island env
>>
>> 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.
>>
>> 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?
>
> Not so convinced. Fast thread locals are important and a Symbol lookup
> in an IdentityDictionary is pretty fast. And polluting Object with stuff
> that doesn't belong there isn't a very convincing alternative to me.
>
does that means that you prefer to replace suspendedContext?

> Cheers
> PHilippe
>
>
>



-- 
Best regards,
Igor Stasenko AKA sig.




More information about the Pharo-project mailing list