Restartable read added by C-Keen on Wed Nov 25 16:08:56 2015

(define (restartable-read port)
    (call-with-current-continuation
     (lambda (restart)
       (condition-case (read port)
                       ((exn i/o net timeout)
                        (log 'debug "Read timeout, restarting.")
                        (restart (restartable-read port)))
                       (e () (signal e))))))