[racket-dev] Coroutines (mzlib/thread)
On 2012-07-20 21:48:38 -0400, Matthias Felleisen wrote:
> We can build it for real. Both interfaces have separate uses and
> should be kept separate. -- Matthias
My first thought was that these could be provided by the same interface,
but let me see if I understand what you're saying.
The issue with providing both options, is that if you provide an `yield`
operator to implicit co-routines, you take away the ability to place
all control of yielding from the controller.
So couldn't we provide a version of `coroutine-run` that takes a #:yield
keyword that enables/disables explicit yielding? If #:yield is off, then
the `yield` procedure provided to the coroutine would be a no-op. Only
the implicit yield condition would trigger a context switch.
Otherwise, the procedure would yield and run some default scheduler.
Cheers,
Asumu