[racket-dev] [plt] Push #25575: master branch updated

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Oct 31 10:08:15 EDT 2012

On Wed, Oct 31, 2012 at 8:53 AM, Matthias Felleisen
<matthias at ccs.neu.edu> wrote:
> At some point someone (Asumu?) mentioned that this is the only
> use of coroutine in our code base. Is this correct?

grep suggests that there are no more (none on planet either).

FWIW, this is still "morally" a coroutine in the sense that it starts
some work and pauses in the middle of the work, either resuming the
work later or aborting the work (depending on what happened during the
pause). And it is cooperative, pausing the work only all spots where
it is safe to do so.

The reason I went away from the racket/engine library is that I wanted
to have the work happen on a specific thread (the eventspace handler
thread for the drracket eventspace) and racket/engine doesn't do that.
I considered using continuations but the work is in a simple tail
recursive loop (well, except for a for-each outside that) so I just
rewrote it directly.

Robby

Posted on the dev mailing list.