Hi All,
It looks like the sematic of DynamicVariable changed not very long ago; it
was based on Notification, but it now just uses a ProcessVariable. Here is a
simple testcase:
DynamicVariable subclass: Seed [
].
Eval [
|b g1 g2|
b := [:v | v + Seed value].
g1 := Generator on: [ :g |
|v|
v := 0.
Seed use: 2 during: [
[ g yield: v.
v := b value: v ] repeat ]].
g2 := Generator on: [ :g |
|v|
v := 0.
Seed use: 3 during: [
[ g yield: v.
v := b value: v ] repeat ]].
Transcript nextPutAll: '%1 %2 %3 %4' % {
g1 next.
g2 next.
g1 next.
g2 next}; nl.
]
It used to yield "0 0 2 3" but yields "0 0 3 3" now. I'd think "0 0 2 3" is
the correct answer; the documantion specifically mentioned stackframes so
the stackframes hopping from the Continuation should affect the variable,
right?