To know if you have reached EOF you need to attempt a read. If you read with read-char/peek-char you will get #!eof. If you use read-subu8vector the result will be 0 on reaching EOF.
Marc
On 2012-11-19, at 1:21 PM, Mikael mikael.rcv@gmail.com wrote:
Dear Marc,
How do I know if a device port reached EOF?
Is there a flag internally in Gambit somewhere I suppose there is a flag internally somewhere in Gambit that keeps track of this. |wait-for-input| just returns immediately. Of course I could do something like (read-subu8vector v 0 1 port 0) though in this particular application I'd much prefer to only do the socket reading and writing completely outside the scope of Gambit's IO system.
If it's not in Gambit then please just say so, there's always another implementation path, though I'd appreciate not to go into higher complexity than needed.
Thanks!
(define (port-wait-for-input port) (##wait-for-io! (device-port-rdevice-condvar port) (port-rtimeout port)))