[racket-dev] Racket Guide chapter on concurrency

From: David T. Pierson (dtp at mindstory.com)
Date: Mon Oct 7 23:33:52 EDT 2013

On Mon, Oct 07, 2013 at 04:08:27PM -0400, David Vanderson wrote:
> This is fantastic!  Thank you!  I learned a good deal reading it
> just now.  Comments below:

Great!  Thanks for checking it out and commenting.

> make-arithmetic-thread is missing a "(let loop ()" line.  Later in
> the same example "(match" should be "(match item".

Ugh, that's sloppy of me.  Thanks for catching these.  I wonder if there
is an easy way to run individual examples from a scribble doc without
copying to and from different buffers.  (I'm assuming I messed up a copy
& paste at some point.)

> In the channel example, could you have the worker threads return
> some text when they are done?  It makes running the example clearer.
> I don't understand the note below this example about the lack of
> synchronization.  I don't see how that can happen, can you explain
> it to me?

Darn.  I had fixed that lack of synchronization by adding the DONE
items, but neglected to remove the note.  The note does apply to the
next example though, so I moved it down.

An update is at:


> Even after reading the reference on wrap-evt and handle-evt, I don't
> understand when I would use wrap-evt.  It seems like handle-evt is
> better?  For the guide, I suggest cutting the wrap-evt example, and
> only show handle-evt.

Hmm, the advantage of wrap-evt over handle-evt is that wrap-evt disables
breaks before calling the handler.  I'll either incorporate that info or
remove the example, but first I need to learn a bit more about breaks.


Posted on the dev mailing list.