[Seaside-dev] WAContext Refactoring

Dale Henrichs dale.henrichs at gemstone.com
Tue Apr 1 16:10:43 UTC 2008


Paolo Bonzini wrote:

>
>> I've just about finished adding process locals to GemStone and have 
>> added additional unit tests to make sure that GemStone's behavior 
>> with process variables and continuations matches Squeak behavior (and 
>> after the next compile cycle all of the tests should pass in GemStone:).
>
>
> How do these interact?
>
> In GNU Smalltalk's implementation, starting a continuation in a 
> different process resets the process variables.
>
> Paolo

In Squeak, the process variables are inherited from the 'parent' process 
when a continuation is started (the context stack within the process is 
replaced without affecting anything else). It's this inheritance that 
makes it possible to use process locals to replace dynamic variables, 
since continuations need to pick up the session (and now other 
interesting request-specific info) for which they have been invoked.

GemStone makes a copy of the process when it creates a continuation and 
replaces the 'parent' process when starting a continuation, so we have 
to make adjustments in a number of different places to accomodate these 
new expectations.

Dale


More information about the seaside-dev mailing list