[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