Hi all,

I've been moving some libraries from mzlib to more appropriate places
recently. I was meaning to move `mzlib/thread` to `racket/coroutine`,
but had some questions about its API.

It appears that the coroutines from `mzlib/thread` don't actually
provide a built-in way to yield the computation to another coroutine.
Instead, the coroutine is run with either a timeout or an event that
suspends the computation and returns to the caller.

Is this a useful coroutine API? It seems that to encode the typical
`yield` construct you need to set up your own protocol with, say, a
channel to trigger a context switch and then do scheduling manually. If
we're going to bother providing it as a `racket` library, should we try
to improve the API?

NB: the only use I could find in the code base was in
framework/private/color.rkt.

Cheers,
Asumu
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to