tonyg / racket-rfc6455

RFC 6455 WebSockets support for Racket.
41 stars 7 forks source link

idle-timeout causes internal errors on recv #13

Open endobson opened 7 years ago

endobson commented 7 years ago

If the timeout triggers and the connection is closed, but recv is still in the midst of being called the following error can occur

read-byte: input port is closed
  context...:
   /Users/endobson/proj/racket/plt/racket/share/pkgs/rfc6455/net/rfc6455/rfc6455/frame.rkt:36:0: read-frame
   /Users/endobson/proj/racket/plt/racket/share/pkgs/rfc6455/net/rfc6455/rfc6455/conn.rkt:59:0: next-data-frame
   /Users/endobson/proj/racket/plt/racket/share/pkgs/rfc6455/net/rfc6455/rfc6455/conn.rkt:153:9: unpack129
   /Users/endobson/proj/racket/websocket/server.rkt:61:14
   /Users/endobson/proj/racket/websocket/server.rkt:52:6
   /Users/endobson/proj/racket/plt/racket/collects/racket/contract/private/arrow-higher-order.rkt:342:33
   [repeats 2 more times]
   /Users/endobson/proj/racket/plt/racket/share/pkgs/web-server-lib/web-server/private/dispatch-server-with-connect-unit.rkt:131:8