The prohbition against `handle-evt' on `handle-evt' is as
document and as originally intended. I'm not sure why it
was allowed.
Existing programs that use `handle-evt' incorrectly
can break. I found and fixed one incorrect use and one
questionable use in the Racket tree (which is a small
minority of the uses of `handle-evt' in the tree).
instead of async channels. This change allows Fred to work. The
change is needed due to implementation weaknesses at multiple
levels, but mostly because `on-subwindow-event' has to complete
atomically --- or else events are pessimistically discarded, and
async-channel communication never completes atomically. In contrast,
messages can be posted to the built-in message queue for a thread
(because it's built in). Probably the async-channel library should
switch to using the built-in thread queue support.
Merge to 5.1