[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: So, what the heck is a continuation anyway?

>>>>> "DS" == Dan Sugalski <dan@sidhe.org> writes:

  DS> can I get a continuation object/marker from within A and pass it
  DS> to B, which then triggers it and returns to A even though I've
  DS> unwound the stack frames for A?
  >> Sure.
  >> You can invoke the continuation and return through A an arbitrary
  >> number of times.

  DS> Hmmm. That means I need to snapshot the stack frames and the
  DS> scratchpads.  Doable.

The problem we run into with Python is that there are so many places
where C stack frames get intermingled with a chain of Python stack
frames:  All of the operator overloading (special methods like __eq__)
dispatch through a C function call.  Builtin functions like map are
implemented in C.  Extensions modules written in C can invoke Python
code at arbitrary times -- say in a Tk callback.