[racket] Not eof evt...
At Sat, 19 Nov 2011 12:21:21 -0500, Curtis Dutton wrote:
> I see that there is an eof-evt that goes ready once an input port hits eof.
>
> I am in need of an event for an input port, that is ready only when a
> non-eof would be read from that port, and is never ready once an eof is hit.
>
>
> For some reason, I'm having difficulty composing my own (like say by using
> guard-evt)...
>
> Does anybody know of a nice way of doing this?
You could use `(regexp-match-evt #rx#"." ...)'. That works on ports
that only contain bytes (not non-byte "special" values), and syncing on
the event actually reads the byte.
If `regexp-match-evt' doesn't work for your purposes, you can construct
a suitable event by spawning a thread that uses a `peek-' function and
posts to a semaphore when a byte is ready. See also the implementation
of `regexp-match-evt' in "collects/mzlib/port.rkt".