My 'read' code looks like this:
Code: Select all
(define (read-irc)
(let ((buffer {}))
(while (not (net-select Iserver "read" 500))
(sleep 500))
(net-receive Iserver buffer 8192 "\n")
(unless (empty? buffer)
(parse-buffer buffer))))
(define (read-irc-loop)
(let ((buffer {}))
(while Iconnected
(read-irc))))