On 9 November 2010 08:06, Philippe Marschall <[email protected]> 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.
