[racket] Why does sync require at least one event?

From: Jonathan Schuster (schuster at ccs.neu.edu)
Date: Thu Jul 17 14:28:54 EDT 2014

I'm writing a macro that expands into a use of sync on a number of
async-channels. In the context of the macro, it makes sense to have it wait
on zero channels - it means effectively the same thing as "go to sleep
forever", or (sync never-evt).

However, sync requires it be passed at least one event. I can get around
this issue by just adding a never-evt to the argument list, but what's the
reason for the current behavior? It seems silly to disallow (sync) when
there's a seemingly obvious default behavior.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20140717/81575e9d/attachment.html>

Posted on the users mailing list.