Re: continuations and threads
Jim Blandy 19 Mar 2000 21:14 UTC
> I understand what you're saying, but you haven't addressed my concern
> (re-quoted above) at all.
I'm sorry I misunderstood you.
> >> I *want* the C stack to be unwound, so that the Scheme
> >> heap references in the C activation records get freed
Well... I *don't* want the C stack to be unwound --- yet. :) That C
stack frame is still live, because S2 might yet return. So its heap
references should not be freed.
The discipline I've described has more expressive power than the one
you described. In order to provide that additional power, we have to
keep that C stack frame around longer, because we can't be sure yet
that we don't still need it. It's still potentially relevant to the
computation, so we can't throw it away.
If C2 returns, then we'll destroy that frame. If S1 or C1 returns,
we'll destroy both of those frames.
(I promise I'm not being deliberately dense; I just don't understand
your misunderstanding. :) You'll need to expand on your question, I
guess.)